Wordpress > functions.php内でis_home()を使うには

「Wordpress/functions.php内でis_home()を使うには」の編集履歴(バックアップ)一覧に戻る

Wordpress/functions.php内でis_home()を使うには - (2012/10/30 (火) 19:21:26) のソース

functions.phpは起動時に読み込まれる。

その時点ではまだ query コンテンツが読み込まれてないので、ページに関する情報は持っていない。

だから is_home() や is_page() は必ず false を返してしまう。


これを解決するためには、is_home() や is_page() を function の中に入れ込んで、フック内で使用する。

例)
#highlight(linenumber,php){{
// feed url を変更
add_action('wp', 'my_mod_feed');
function my_mod_feed() {
    if(is_front_page()) {
        remove_action( 'wp_head', 'feed_links_extra', 3 ); // エクストラフィードの削除
    }else{
        add_action( 'wp_head', 'feed_links_extra', 3 ); // エクストラフィードの追加
    }
    echo '<link rel="alternate" type="application/rss+xml" title="RSS" href="'.get_bloginfo('rss2_url').'" >';
}
}}