Al final no me sirvió lo que me propusiste, ya que yo no sabía si el valor de object_id iba a ser 1. De hecho, este 1 es el que esperaba que la consulta me devolviera.
Jejeje, respuesta esperada. Era absurdo lo que estaba proponiendo.
Ya viendo tu post, con tu solución propuesta, se entiende lo que pretendías. Creo que ganarías en eficiencia, si antes de tu primera consulta, hicieses otra, en la que teniendo capturados los valores de los parámetros, agrupases por el 'object_id' y luego con HAVING le metieses un COUNT (object_id)=Nº de parámetros. Así conseguirías sacar el 'ID' que necesitas. Es decir:
$sql = "SELECT wp.ID FROM wp_posts wp INNER JOIN wp_term_relationships wtr
ON wp.ID = wtr.object_id
WHERE wp.post_parent = '".$tipus[$i]."' AND wp.post_type = 'page'
AND wtr.term_taxonomy_id IN ($parametres)
GROUP BY wp.ID HAVING COUNT(wp.ID)=3"
En este caso se iguala a 3 el COUNT, ya que son 3, los parámetros que utilizas. Te ahorrarías el uso de funciones, bucles y condicionales.
Saludos.