[英]WordPress ignoring is_page() conditional
<?php if( is_home() || is_page(10)): ?>
<div class="text-center col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12">
<?php elseif(is_single() && !is_page(10)): ?>
<div class="text-center col-xl-9 col-lg-9 col-md-9 col-xs-12">
<?php endif; ?>
我要做的就是如果您在單個帖子上,則更改分配給該<div>
的類,效果很好,但在查看聯系人頁面時似乎無法控制它,這似乎可以識別為一個帖子。 很好,但是我想從此效果中排除一頁。
我已經嘗試過is_page('Contact'),is_page('contact')和is_page(10)在任何情況下它們似乎都不返回true,我什至刪除了所有其他條件,並且如果它的聯系方式只是打印了一些內容頁,但它仍然不會返回true,也沒有任何效果。
我已經進行了很多搜索,所有可以找到的提示是我正確使用了它。.我迷茫了為什么它不返回true?
我是否在使用php if語句不正確,並且到目前為止,這是“糟糕,有效”的方案? 該頁面的網址以?page_id = 10結尾,該頁面的標題為“聯系”
我可以創建一個頁面模板,但似乎超出了這里的需要,聯系頁面非常簡單,我真正需要做的就是使用引導程序將四行文本適當地居中。 在網站的所有其他頁面上均可正常運行,如果您在主頁上或查看單個帖子,則可以適當地更改<div>
。
根據要求,完整的index.php代碼如下。 感謝任何願意看這個的人。 沒什么大不了的,我還比較陌生,所以請原諒我過多的評論-我還在學習。 完整的index.php: https : //pastebin.com/nnG0ny99
您可以嘗試使用:
global $post;
<?php if( is_home() || $post->ID == 10): ?>
<div class="text-center col-xl-12 col-lg-12 col-md-12 col-sm-12 col-xs-12">
<?php elseif(is_singular() && $post->ID != 10): ?>
<div class="text-center col-xl-9 col-lg-9 col-md-9 col-xs-12">
<?php endif; ?>
這樣,您將獲得實際的帖子ID,而不是頁面ID。
編輯:嘗試將is_single()
更改為is_singular()
如回答中建議的saNs。
確保您沒有在循環中使用is_page()。
來自https://developer.wordpress.org/reference/functions/is_page/ “由於某些特定的全局變量在循環期間被覆蓋,所以is_page()無法使用。要在循環之后調用它,必須調用wp_reset_query( )。”
is_single()
適用於“任何帖子類型,附件和頁面除外”( https://developer.wordpress.org/reference/functions/is_single/ ),因此對於頁面,它將始終為false。
使用is_singular()
代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.