Ваша проблема, вероятно, в использовании ||вместо &&.
Вы хотите, чтобы оно отображалось, если вы не на странице 92 И вы не находитесь на подстранице страницы 92.
Допустим, вына странице 92 ваш текущий код делает это:
if (false || true)
, поскольку 92 не является родителем страницы 92. Таким образом, поскольку одно условие истинно, оно срабатывает.
Если вы находитесь на подстранице 92, то все наоборот:
if (true || false)
Если вы находитесь на странице, которая не 92 или подстраница 92, тогда вы получите:
if (true || true)
Таким образом, он будет срабатывать всегда, независимо от того, на какой странице вы находитесь, потому что ||требуется только одно утверждение true для всего условия, чтобы оно было истинным.
Следовательно, измените код на
<?php if (!is_page(92) && $post->post_parent !== 92) { echo $foo; } ?>
, что дает логическое завершение, например:
Страница 92:
if(false && true) //false, won't trigger
Подстраница 92:
if(true && false) //false, won't trigger
Некоторые несвязанные страницы:
if(true && true) //true, will trigger