アーカイブページのタイトルを振り分けて表示する3行のコード[WordPress]
月別アーカイブや年別アーカイブ、カテゴリーアーカイブのタイトルを振り分けて表示するコードを紹介します。たった3行です。
まえがき
このKoToRi Blogもそうですが普通のブログサイトだと基本的なレイアウトが一緒なので全部index.phpだけで済ませたくなりますよね。
いちいちcategory.phpとか分けるのメンドクサイです。
index.phpだけでいく場合、月別アーカイブやカテゴリアーカイブのタイトルを表示するタグは条件分岐で対応することとなります。
そんな時にKoToRiが愛用しているコードを紹介します。
たった3行のコードで月別アーカイブや年別アーカイブ、カテゴリアーカイブのタイトルを振り分けることが可能です。
月別(年別)アーカイブとカテゴリーアーカイブでタイトルを振り分けるコード
アーカイブタイトルを表示したいところにこのコードを記述します。
<?php if($monthnum||$year||$cat){ ?> <div class="archivetitle"><?php if($cat){ ?><?php single_cat_title(); ?><?php }elseif($monthnum||$year){ echo $year.'年'; ?><?php if($monthnum){ echo $monthnum.'月';} } ?></div> <?php } ?>
このコードで
カテゴリーアーカイブ時はカテゴリ名を表示!
月別アーカイブ時は年月を表示!
年別アーカイブ時は年を表示!
となります。
アーカイブページでは現在表示されているものが変数に格納されるようになりました。自動的に。
例えばカテゴリーアーカイブページだと現在表示しているカテゴリのIDが「$cat」に自動的に格納されます。
それを利用した方法です。
ちなみにこのコードの前で「WP Query」を利用したループがある場合、そのループのendifタグの後で「wp_reset_query();」を入れてクエリをリセットしてください。
例
<?php /*ループの閉じタグ*/ endwhile;endif; wp_reset_query(); ?>
カテゴリー別月別(年別)アーカイブもありえる場合
特定カテゴリの月別アーカイブリストの表示[WordPress]で紹介した方法を使用して特定カテゴリの月別アーカイブを表示する場合、条件分岐が若干変わるのでこんな感じになるかと。
<?php if($monthnum||$year||$cat){ ?> <div class="archivetitle"><?php if($cat){ ?><?php single_cat_title(); ?><br /><?php } ?><?php if($monthnum||$year){ echo $year.'年'; ?><?php if($monthnum){ echo $monthnum.'月';} } ?></div> <?php } ?>
まとめ
いつからアーカイブページでは自動的にページ情報が変数に格納されるようになったんでしょう。
最初からじゃないですよね??気付いたときびっくりしました。
とりあえずループの「wp_reset_query();」忘れは気をつけてください。