簡體   English   中英

WordPress忽略有條件的is_page()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM