2011-02-07 39 views
7

有哪些不同的方法來檢測WordPress的主頁有什麼不同的方式來檢測WordPress的主頁?

除了is_front_page()is_home()

感謝

+2

什麼是錯的`is_home()`? – alex 2011-02-07 11:27:49

+0

它不在我的博客工作:( – 2011-02-07 11:37:17

+2

我不知道WordPress的好,但你可以快速和容易地做到這一點'$ isHome =($ _SERVER ['REQUEST_URI'] =='/')`(或任何你的首頁是?) – alex 2011-02-07 11:42:42

回答

20

is_front_page()是你想要的。

我假設,由於is_home()不工作,根據wp-admin中的設置,您的主頁是靜態的。

is_home()在您的主博客頁面上返回true,而is_front_page()返回true,以確定哪個頁面被定義爲您的首頁,是否爲feed。

法典:

此條件標記檢查主頁是一個職位或頁面。這是一個布爾函數,意味着它返回TRUE或FALSE。當顯示主博客頁面並且Settings-> Reading-> Front頁面顯示爲「Your recent posts」,或者當設置爲「靜態頁面」並且「Front Page」值爲當前正在顯示的頁面。

16

我只是做了以下內容:

if ($_SERVER["REQUEST_URI"] == '/') { } 

它的工作原理,並沒有過於複雜的事情,特別是因爲is_front_page()is_home()並不總是像你期望的那樣工作。

-1

is_home()是要走的路。

你有沒有試過這種方法,它不起作用?如果是,它通常與mod_rewrite設置或wordpress設置本身有關。

0

在許多情況下,一個WordPress網站可以在REAL主頁和主博客頁面上將is_home和is_frontpage同時設置爲true。在Wordpress中建立網站大約4年後,這仍然困擾着我。

例如,如果您有一個網站在主頁上放置了您的最新帖子,可能是一個滑塊或其他一些以主頁爲中心的元素,並且有另一個博客頁面,那麼is_frontpage和is_home都會在這兩個頁面上評估爲true 。所以Wordpress對於真正的主頁沒有明確的條件功能,至少大多數人認爲網站的主頁是這樣。

所以我利亞姆同意,如果你進入一個混亂的局面,像 如果($ _ SERVER [ 「REQUEST_URI」] == '/'){}

更可靠。

2

隨着二十年我用:

<?php 
if ($_SERVER["REQUEST_URI"] == '/') { ?> 
    <h1 class="site-title"><?php bloginfo('name'); ?></h1> 
    <h2 class="site-description"><?php bloginfo('description'); ?></h2> 
<?php 
} else { ?> 
    <p class="site-title"><?php bloginfo('name'); ?></p> 
    <p class="site-description"><?php bloginfo('description'); ?></p> 
<?php } ?> 

就像一個魅力... $ _SERVER是一個我一直使用,它總是有效。

0

發現這個問題,大約兩年前,處理一個相當特殊的設置:

我想上首頁,並且不會加載模塊(面搜索引擎)任何其他頁面上。遇到麻煩的是它必須在init上進行引導才能正常工作並且速度很快。

通常情況下,我應該已經解決了Liam Galvinanswer
但我不是蠻力解決方案的粉絲。所以我偷看了is_front_page(),看看它爲什麼會在init期間返回false。這很簡單:它依賴於$wp_query,這不是在那個點上設置的。

所以我寫了下面的功能,(並一直使用它),結合兩全其美:被設置$wp_query
蠻力之前(我應該永遠需要它),適當WP方式算賬:

function on_front_page() { 
    global $wp_query; 

    if (! isset($wp_query)) { 
    return $_SERVER["REQUEST_URI"] == '/'; 
    } else { 
    return $wp_query->is_front_page(); 
    } 
} 

這是沒有,不超過的is_front_page()一個變種,與Liam的答案回退少。尚未遇到任何命名衝突,但如果您發現其名稱過於常見,請隨時重命名它。

事實是,我複製/粘貼在每一個WP項目中,因爲它並沒有讓我失敗一次,所以我想我會分享。

0

從外循環:

if(get_option("page_on_front") == $post->ID){ 
    //do front page stuff here 
} 
相關問題