WordPress・WEB系の開発(プログラム)関係や技術情報ほか、技術情報全般を掲載

  • このエントリーをはてなブックマークに追加

WordPress footer.phpで条件分岐タグが機能しない

WordPressのテーマ作成中 footer.php 内で is_page() や is_single() など条件分岐タグを使い表示の切替をするよう記述していたのだが何故か正しく機能しない現象が起こった。
調べてみると、他のテンプレートで、query_posts() などクエリが実行されると条件分岐タグは破損してしまい意図したように機能しない。
この問題を解決するには、クエリを実行した後か条件分岐タグを利用するまえに wp_reset_query() 実行すればよいとのこと。

私の場合はいくつか functions.php 内にクエリを実行する関数を定義していたので query_posts() の実行後には wp_reset_query() を実行するように2つをセットで書くようにして対処しました。

/**
 * ランダムに記事リストを取得する
 */
function randomPosts()
{
    global $post;
    $args = array(
        'post_type'      => 'post',
        'posts_per_page' => 3,      
        'orderby'       => 'rand',
    );
    //
    $res = query_posts( $args );
    wp_reset_query();
    return $res;
}

※参考)
https://wpdocs.osdn.jp/%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90%E3%82%BF%E3%82%B0

※WordPressバージョン 4.3.1

関連記事

コメントは利用できません。

アーカイブ