WordPressのテンプレートに含まれるfooter.phpにis_home()でトップページの判定をしてif文を追加したところ、うまく表示されなかったので調べてみました。
footer.phpより先にquery_post()を用いたプログラムが入っている場合、is_home()が無効化されるようです。
query_posts() はWordPressが投稿を表示するのに使用しているメインクエリーを置き換える手段です。これはメインクエリーを一旦横に置いておき、新しいクエリーで上書きします。query_posts を呼び出したあとは、クエリーの改変を戻すために、wp_reset_query() を呼び出し、オリジナルのメインクエリーを復活させる必要があります。
WordPress Codex 日本語版
私の場合は、トップページにオリジナルのテンプレートでquery_post()が用いられていたため、このような現象が発生したようです。そのためfooter.phpに以下のようなコードを追加しました。
<?php
wp_reset_query();//一度リセット
if(is_home()): ?>
・・・・トップページのときの内容 ・・・・
<?php else: ?>
・・・・トップページ以外のときの内容 ・・・・
<?php endif; ?>
コメントを残す