문제가 아마도 || & & 대신.
당신은 92 및 당신이 92
이의 당신이 92 페이지에있어 가정 해 봅시다 페이지의 하위 페이지에없는 당신이 페이지에없는 경우는 에코하려면, 다음 현재 코드는 다음을 수행합니다
92 때문에
if (false || true)
하나 개의 조건이 참이므로, 트리거, 따라서 92 페이지의 상위 아니다.
당신이 92 또는 92의 서브 페이지가 아닌 페이지에있는 경우 if (true || false)
, 당신이 얻을 : 당신이 (92)의 하위 페이지에있는 경우
은, 그것은 반대입니다 :
if (true || true)
그래서 항상 관계없이 어떤 페이지 온, 때문에, 트리거 || 전체 조건이 참일 때 단 하나의 참 진술 만 필요합니다.
페이지 92 :
if(false && true) //false, won't trigger
서브 페이지 (92)의 :
따라서, 같은 아래로 논리적 인 실행을 제공
<?php if (!is_page(92) && $post->post_parent !== 92) { echo $foo; } ?>
에 코드를 변경
if(true && false) //false, won't trigger
일부 관련이없는 페이지 :
if(true && true) //true, will trigger
당신은 모두의 값을 확인하신 후, 그들은 같은 값되지 않도록? –
"나누기"를 정의 하시겠습니까? – Cyclone
언어 모호성을 명확히하기 위해 "페이지가 92가 아니거나 부모가 92가 아닌 경우"이고 "if _neither_ page _nor_ parent가 92이면"이 아니라는 의미입니다. (후자의 경우'||'대신'&&'가 필요합니다.) – Wiseguy