トップページ以外のサイドバーに新着記事一覧を!if(is_home())が効かないぞ!

【スポンサーリンク】



トップページには新着記事一覧を載せていますが、トップページ以外のページへ行くと新着記事一覧は表示していません。

ということで、トップページ以外のページのサイドバーに、サムネイル入りで新着記事を10個表示するというカスタマイズを行うことにしました。


このトップページ以外にというような条件分岐のタグは、このサイトで使用しているテンプレート(テーマ)でも既に使用しています。

どこに使用しているかというと、トップページに表示されるメイン画像のところに使用しています。この場合は、正確にはトップページのみに表示するという条件分岐のタグ「if(is_home())」です。

メイン画像表示

ちなみにトップページ以外に行くと、メイン画像が表示されないことを確認できると思います。

メイン画像非表示

今回は、サイドバーの同じ場所に、トップページではアフィリエイトバナーを表示して、トップページ以外では新着記事一覧を表示することにしました。

ということで、コードは下記を使用しました。

<?php if (is_home()): ?>アフィリエイトバナー<?php else: ?>新着記事一覧<?php endif; ?>


早速、sidebar.phpにコードを追加し、保存してトップページへ行くと・・・「あれっ?」 新着記事一覧が表示されているではありませんか!

「コードを書き間違えたかな?」と思い、何度も見直しましたが間違っていません。別のサイトで試してみると、バッチリ動作しました。ということは、コードは間違っていない。

同じテンプレートを使っているはずなのに、なぜこのサイトではうまく動作しないのだろう?と、頭の中がクエスチョンだらけに^^;


ダメもとで、Googleで「php if(is_home())が効かない」というキーワードで検索してみました。

トップに表示されたタイトルが「[WordPress] トップページなのにif(is_home())が効かないと思いきや」。

クリックしてサイトを見てみると、なんとドンピシャ!!全く同じ症状でした。しかも解決策まで書いてありました。


トップページの新着記事表示に「query_posts()」を使っていると、この現象が起こるとのこと。このサイトでは、図解入りで説明してあり、凄くわかり易かったです。

その時、このサイトの新着記事一覧の部分はカスタマイズしていて、この部分だけ別サイトとは違っていたということを思い出しました。


解決策は、新着記事表示のコードの後に、下記のコードを追加すればOKとのこと。

<?php wp_reset_query(); ?>

これで無地に解決しました。もう、感謝、感謝です!!ありがとうございました!


大変、役に立ったサイトはこちらです。

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

今回は、非常に助かりました!ありがとうございました。




【スポンサーリンク】

新着記事一覧