WPでin_categoryが効かない!サイドバーが出てこない!原因と対処(解決)方法

管理しているサイトでカテゴリー単位で色々「in_category」で分岐してサイドバーの出し分けをしていたのですが、あるカテゴリーだけ、どう記述してもサイドバーが表示(分岐)されてくれない!という状況に陥ってしまいました。

WPでin_categoryが効かない!サイドバーが出てこない!原因と解決(対処)方法

記述方法が悪いのかなぁ。とそっち方面をググりまくってたのですが、全然改善せず。順番を変えてみても改善せず。変えたいカテゴリーだけの記述をしても改善せず!?

ここでこのページの記述に問題がある!と、よ〜〜〜やく気づき、解決することができたので、今回はその原因と解決(対処)方法です。

in_categoryが効かない時の原因と対処方法

では早速。

in_categoryが効かなかった原因

サイドバーを出したかったカテゴリーのページは、single.phpを分岐してsingle-A.phpのようにして使っていました。
で、そこのページでは「商品一覧アイテム」を『wp_query』を使ってループして出していました。

結論、『wp_query』がきちんとリセットされてなかったのが原因だったんですが、なかなかここに辿り着けなかったんですよねぇ。。

in_categoryが効かない時の対処方法

原因がわかったらあとは簡単です。『wp_query』をリセットさせる記述、

<?php wp_reset_query();?>

を追加します。

<?php query_posts('cat=1,2&posts_per_page=6&orderby=rand&paged='.$paged); ?><!--カテゴリーID1,2を指定、6ページをランダム表示-->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
〜〜〜
<?php endwhile; ?>
<?php else: ?>
〜〜〜
<?php endif; wp_reset_query();?>

こんな感じに、7行目の「endif」のあとに

<?php wp_reset_query();?>

を追加してよ〜〜〜やく解決してくれました。。

ちなみに、

<?php wp_reset_postdata();?>

が入っていたので、リセットされていると思っていたのですが、「wp_reset_postdata」「wp_reset_query」同じリセットでも微妙に違うんですね。

これについてはまた今度余裕があれば書きます。

まとめ

「商品一覧」には、色々なカテゴリーのものが入っていたので、ほぼサイドバーはでなかったのです。

ただ数十回に一回程度表示、サイドバーを出したいものだけがその「商品一覧」を埋めていた時がたまたまあり、このおかげで原因を特定できた訳なのですが、いや〜〜〜長かった。。

代替案で商品一覧を消して数日間対処したりしてたので、結局解決に何週間もかかってしまいました。。ふぅ。。

同じように困ってる方がいたら、ぜひ試してみてください!

Google AdS



関連記事

Google AdSenseの広告をWordPressの投稿内に記述する方法


以前Google AdSenseの広告を自動で設定してたのですが、ある時スマホで管理サイトを見た時、やたら記事を読むのを…

記事を読む▷


お名前.com から脱出する!:ドメインの移管方法


『お名前.com』でドメイン取得してからは、『Whois情報公開代行』の件(詳細はこちら)で大変な思いをしたのですが、そ…

記事を読む▷


『ChatGPT・Copilot・Gemini』比較!使い倒してわかった違い・リミット回数・注意点・使い方のコツ

無料版『ChatGPT・Copilot・Gemini』比較!使い倒してわかった違い・リミット回数・注意点・使い方のコツ


2024/11 更新「Copilotの回数制限がなくなってました!」 WordPress(ワードプレス)でオリ…

記事を読む▷


WindowsのSafariで【background】が効かない時の原因と対処方法


最近cssではショートハンドを使って記述するのが当たり前になってきたので(ショートハンドの詳細はこちら)、今回トラブルと…

記事を読む▷


<head>タグの記述例=順番等もきちんと考えた雛形(テンプレート)


一度サイトを作ってしまうと、あまり見直すことのないheadタグ内の記述。新たなLPを作ったりする時でも、以前作ったものの…

記事を読む▷


Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください