ページの上と下の両方にカテゴリー一覧を表示する様に設置した時に下だけ表示されない現象が起きました。
今まで普通に設置したので特別気にもしてませんでしたが、カテゴリー一覧が真っ白。全く表示されていないのです。
設置個所
簡単ですが、設置内容はこんな感じです。
1 2 3 4 5 6 7 |
<?php カテゴリー一覧1 ?> <?php if(have_posts()):while(have_posts()):the_post(); ?> ループする内容(記事一覧) <?php endwhile;endif;?> <?php カテゴリー一覧2 ?> |
この様に設置すると「カテゴリー一覧1」の方は表示されたのですが、「カテゴリー一覧2」の方が表示されませんでした。
試しに設置個所を変えてみた
試しにカテゴリー一覧2の場所を変えてみました。
1 2 3 4 5 6 7 |
<?php カテゴリー一覧1 ?> <?php カテゴリー一覧2 ?> <?php if(have_posts()):while(have_posts()):the_post(); ?> ループする内容(記事一覧) <?php endwhile;endif;?> |
試しに「カテゴリー一覧2」の位置をループの上に設置してみました。
こうすると、「カテゴリー一覧1」「カテゴリー一覧2」共に表示されました。
という事は、現状のままでループの下に設置すると表示されないという事が分かりました。
さてどうしたものか。。。
ループを伴わない単体ページの場合のコードを追加する
WorePressには繰り返す「ループ」のコードと、ループしない「単体」を表示するコードがあります。
ループを伴うコード
1 2 3 |
<?php if(have_posts()):while(have_posts()):the_post(); ?> 繰り返す内容を記載 <?php endwhile;endif;?> |
ループしない単体コード
1 2 3 |
<?php if (have_posts()) : the_post(); ?> 表示させる内容を記載 <?php endif; ?> |
この単体コードを追加してみたら?
ダメ元で追加してみます。
原因は単体コードでした。
最終的にこちらのコードで落ち着きました。
1 2 3 4 5 6 7 8 9 |
<?php カテゴリー一覧1 ?> <?php if(have_posts()):while(have_posts()):the_post(); ?> ループする内容(記事一覧) <?php endwhile;endif;?> <?php if (have_posts()) : the_post(); ?> <?php カテゴリー一覧2 ?> <?php endif; ?> |
「カテゴリー一覧2」を単体コードで囲むことで表示する事ができました。
おかしいなぁ。。。今まで出てたのになぁ。。。と言っても出てないものはしょうがない!
これで解決できました。