WordPressで月間/年間のアーカイブを作成したいときの記述。
WordPress触りたてのころ、よく使用するしつまづいていたので備忘録として。
こんな感じで日々調べて知ったこととか、よく使うのにすぐ忘れる記述とか己のための備忘録メモ。
ただ、かなり量あるし、ローカルに綴るだけではなんなので、
「人に見られる」という前提で分かりやすく記録し、初心者の方や検索迷子の方のお力添えできればとブログの形で残し公開します。
ここへ辿り着いた人がいたら、ぜひ参考にしていただきたい。
ただ、html/css、ワードプレスの基礎は理解している方でないとちょっと難しいかも。
▼では今回の本題
archive.php
大まかにはWP_Queryのパラメータに下記を加えます。
$year = get_query_var(‘year’);
‘year’ => $year,
‘monthnum’ => $monthnum,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php $paged=get_query_var('paged')?get_query_var('paged'):1; $year=get_query_var('year'); $args=array( 'paged'=>$paged, 'posts_per_page'=>12, 'post_type'=>$post_type, 'year'=>$year, 'monthnum'=>$monthnum, ); if(is_tax()){ $tax_args=array( 'tax_query'=>array( array( 'taxonomy'=>$taxonomy, 'field' =>'slug', 'terms'=> $term, ), ), ); $args=array_merge($args,$tax_args); } $the_query=newWP_Query($args); if($the_query->have_posts()): ?> |
これだけで仕組み上は月間/年間のアーカイブが表示されるようになります。
遷移のためのボタン生成
上記だけでは、遷移するためのボタンがありませんので別途下記を使用して取得します。
アーカイブ一覧を表示するには wp_get_archives()
を使用します。
パラメーター一覧
type | 表示するアーカイブの種類 | ‘monthly’(月) ’daily’(日) ’weekly’(週) ’yearly’(年) ‘postbypost’(公開日時の順) ’alpha’(タイトルのアルファベット順) |
limit | 取得する件数 | デフォルトはnull(あるだけ取得)数字を入力で上段のtypeに応じて、取得数が変動 |
format | アーカイブの表示形式 <a>タグでくくるものを設定 | ‘html’ ’link’ (<link> tag) ’option’ (<option> tag) ’custom’ |
before | formatがhtmlまたはcustomのとき、aタグの直前に付けるテキスト(htmlタグ可) | デフォルトはnull <li><a>~</a></li>以外の形で<a>タグをくくりたいときに設定 |
after | 同上 | 同上 |
show_post_count | 投稿数を表示するか | ‘false’(表示しない)/ ’true’(表示) |
echo | 関数で取得した値を出力するか | ‘false’ または ’0’(表示しない)/ ’1’(表示) |
order | 項目の並び順 | ‘ASC’(古い順)/ ’DESC’(新しい順) |
post_type | アーカイブを取得する投稿タイプ | デフォルトは’post’ カスタム投稿タイプなどを使用している場合はその名前を記載 |
liタグでアーカイブ一覧を表示する方法
上記表を参考に、()内を調節してください。
1 2 3 | <ulclass="monthly-list"> <?phpwp_get_archives('type=monthly&post_type=news&show_post_count=1');?> </ul> |
この場合HTMLは次のように表示されます。
1 2 3 4 5 | <ulclass="monthly-list"> <li><ahref="example.com/news/date/2023/03?post_type=post">2023年3月</a> (30)</li> <li><ahref="example.com/news/date/2023/02?post_type=post">2023年2月</a> (20)</li> <li><ahref="example.com/news/date/2023/01?post_type=post">2023年1月</a> (10)</li> </ul> |
セレクトボックス(プルダウン)でアーカイブ一覧を表示
表にあるように、format に option を指定することで、セレクトボックスを使用してプルダウンでアーカイブ一覧を表示可能。
1 2 3 4 | <select name="archive"onchange="document.location.href=this.options[this.selectedIndex].value;"> <option>アーカイブ</option> <?phpwp_get_archives('type=monthly&post_type=news&show_post_count=1');?> </select> |
▲以上、今回の備忘録でした。
こんな感じで、ガチガチの初心者以外であれば、理解できると思うのでぜひ使ってやってほしい。
WordPressPHPというタグをつけているので、
もしここのブログに行き着いた人がいれば他の記事も参考にしてみてください。
そのほかにも
・コピペcss
・js
・便利ジェネレーター
などなど、私が今までつまづいたところや、何度も同じ検索をしていることをまとめて、記憶の倉庫にしています。
更新は不定期だし、自分メモから書き起こしてる感じなので万能ってわけではないけれど。
私含め、つまずいている人たちのちょっとした杖になれたらなと思ってます。
まあ、ほぼほぼググればヒットするものばかりをまとめる+ちょっとしたプラスアルファのメモなのでほぼまとめサイト感覚ですが。。。