WordPressのテンプレートを作っていて、ページ毎に表示するアイコンを変更しようと思い、is_page関数を使ってみたところ、条件分岐が正しく判定されなくて、困り果てました。

もう少しで自分で変数を追加して条件分岐関数を新規追加するところでしたが、解決方法を見つけたのでご紹介します。

WordPressで条件分岐が効かなくなくなったときの対処法(なんというつくりかけ放置プレイ!様 2012/10/24)

原因

原因はhave_post関数や、query_post関数を使った後にis_page関数を呼び出すと条件分岐が正常に行われなくなるとのこと。

解決方法

wp_reset_query関数をis_page関数の前で呼び出せば、条件分岐が正常に戻ります。以下のように書けばOKです。

<?php
    wp_reset_query();
    if( is_page("test")) {
        // 処理
    }
?>

他のis_home関数、is_single関数なども同様の現象が発生するようなので、条件分岐がおかしくなった場合はwp_reset_query関数を事前に実行するようにしてみてください。

本日は以上です。