かわたま.net

Enjoy Creative! かわたまのwebメモ

wordpressで「if(is_home()):」などの条件分岐タグが効かないときの対処法!query_postsをリセット

2016 May 22

Tag:

トップページやシングルページなどで表示を切り替えたいときなどに便利な条件分岐タグが上手くいかないときの対処法をメモ。

条件分岐タグ

例えばトップページだけ条件分岐したいときは

<?php if(is_home()): ?>
ブログのトップページに表示させるコンテンツ
<?php endif; ?>

こんなかんじで使いますが、何故か上手く表示されない。
query_posts()を使って記事を取得している場合、リセット処理されていないのが原因かも。

参考:[WordPress] トップページなのにif(is_home())が効かないと思いきや

条件分岐タグの前にquery_postsをリセット処理

条件分岐のifの前に下記タグを記述します。

<?php wp_reset_query(); ?>

もしくは

<?php wp_reset_query(); if(is_home()): ?>
  //トップページに表示させるコンテンツ
<?php else: ?>
  //トップページに以外に表示させるコンテンツ
<?php endif; ?>

これで解決しました!