導讀:WordPress 加 is_home() 判斷是否為首頁, 結果不生效, 可能的原因是 is_home() 之前有個 query_posts() 造成的,is_home() 函數在首頁的時候會返回...
WordPress 加 is_home() 判斷是否為首頁, 結果不生效, 可能的原因是 is_home() 之前有個 query_posts() 造成的,is_home() 函數在首頁的時候會返回一個 true 來判斷, 而 query_posts() 會阻斷這一判斷, 代碼如下:
- <?php if ( is_home() ) { ?>
- 我只會在首頁顯示
- <?php } ?>
is_home(); 函數在首頁的時候會返回一個 true, 上面那段代碼是常用的只在首頁顯示, 插入任何模板頁 PHP 裏都可以, 例如側邊欄 sidebar.php 或頁腳 footer.php, 但如果它之前有個 query_posts(); 則會讓它失效, 原因是 is_home is_virgin is_ooxx 這種 is_ 前綴的都是基於主旋律循環來判斷, 而 query_posts(); 會讓其偏離主循環, 解決方案是在 is_home(); 之前加一個 wp_reset_query(); 代碼如下:
- <?php wp_reset_query(); if ( is_home() ) { ?>
- 我只會在首頁顯示, 真的!
- <?php } ?>
第二種, 當你使用指定的一個 page 頁面作為首頁時, 這種情況下 is_home() 是不起作用, 可以使用 is_front_page() 來判斷當前頁是不是指定的首頁, 我們在上面所描述的情況下需要的就是這個函數, 代碼如下:
- <?php if (is_home() || is_front_page()) { ?>
- 首頁顯示代碼……………………
- <?php } ?>