我試圖做到以下幾點與WordPress的:PHP條件語句:不等於操作
「如果是不第92頁,或頁父不 92」
以下是我有:
<?php if (!is_page(92) || $post->post_parent !== 92) { echo $foo; } ?>
如果我使用一個或另一個作爲條件,它的工作原理;當我添加第二個條件時,它會中斷。
任何幫助將不勝感激。
乾杯!
我試圖做到以下幾點與WordPress的:PHP條件語句:不等於操作
「如果是不第92頁,或頁父不 92」
以下是我有:
<?php if (!is_page(92) || $post->post_parent !== 92) { echo $foo; } ?>
如果我使用一個或另一個作爲條件,它的工作原理;當我添加第二個條件時,它會中斷。
任何幫助將不勝感激。
乾杯!
你的問題可能是在使用||而不是& &。
你希望它呼應如果你不是頁面上92 和你是不是在頁面的子頁面92.
比方說,你是92頁,則您當前的代碼做這個:
if (false || true)
因爲92是不是92頁。因此家長,因爲一個條件是真實的,它會觸發。
如果你在92子頁面,那麼它的反面:
if (true || false)
如果你是一個網頁,是不是92或92子頁面,那麼你會得到:
if (true || true)
因此,它總是會觸發,無論哪一頁您的,因爲||只需要一個真實的陳述來說明整個條件是正確的。
因此,更改您的代碼
<?php if (!is_page(92) && $post->post_parent !== 92) { echo $foo; } ?>
這倒給出了一個合乎邏輯的運行,如:
頁92:
的子頁面的92if(false && true) //false, won't trigger
:
if(true && false) //false, won't trigger
一些無關的網頁:
if(true && true) //true, will trigger
ahhhhh,是的。你是對的!我忘了,如果滿足一個條件,則觸發條件。 – 2011-04-20 15:02:27
哦。這就是我認爲我在上面的評論中澄清的內容。 – Wiseguy 2011-04-20 15:04:38
謝謝你,我感謝你的時間。乾杯! – 2011-04-20 15:05:02
您的聲明中有一個額外的等號。運算符!==用於布爾檢查。由於post_parent會自動解析爲「真」,因爲它有一個值,它總是會回顯「foo」。將其更改爲以下內容。
<?php if (!is_page(92) || $post->post_parent != 92) { echo $foo; } ?>
不正確。 !==適用於所有數據類型。當然,這可能是他的問題,如果$ post-> post_parent返回一個字符串而不是一個int,那麼它就不起作用。 – Phoenix 2011-04-20 14:48:01
同意 - 我忘了帶有值的變量會自動解析爲「true」。 – 2011-04-20 14:49:32
嗯,是的,我也試過。還是不行 - – 2011-04-20 14:50:13
你檢查這兩個值,以確保它們是不一樣的價值? – 2011-04-20 14:43:58
定義「休息」? – Cyclone 2011-04-20 14:47:22
只是澄清語言歧義,你的意思是「如果_either_頁面不是92或者如果父母不是92」,而不是「如果_neither_ page _nor_ parent是92」,對嗎? (對於後者,你需要'&&'而不是'||'。) – Wiseguy 2011-04-20 14:55:19