制作のご相談はこちら
【WordPress】is_page関数で判定が効かない場合の対処法

公開日 : 2018年02月14日

【WordPress】is_page関数で判定が効かない場合の対処法

WordPressでページごとに表示を分けたい時にis_page関数を使おうとしたのですが、なぜか判定が効かなくなるときがありました。
そんなときの対処法を紹介します。

判定が効かなくなる原因

have_post関数や、query_post関数を使った後にis_page関数を呼び出すと、条件分岐が正常に行われないため。

確かに、have_post関数や、query_post関数を使う前にis_page関数を使用しても正常に動いていました。
同じページで同じソースなのに1箇所は正常で、もう1箇所が不具合が起きていたので、原因が分からず困っていました。。

対処法

<?php wp_reset_query(); ?>

if文の前にクエリをリセットさせる処理を加えます。
if文と組み合わせるとこのようになります。

<?php
    wp_reset_query();
    if( is_page() ) {
        // ページに表示させたい処理
    }
?>

is_page()以外のis_home()などでも同様の事が起こる可能性があるので、この方法を試してみてください。