月別アーカイブをコンパクトにまとめたい
-
お世話になります。
<ul><?php wp_get_archives('type=monthly&post_type=hoge'); ?></ul>
を利用した際に表示を2013年1月
2013年2月
2013年3月
2012年1月
2012年2月
2012年3月
ではなく
2013
1 2 3
2012
1 2 3のようにしたいと思っています。プラグインの「Compact Archives」を利用出来たらと思ったのですが、カスタム投稿では利用出来ないようでした。カスタマイズをすればカスタム投稿でも使えるとは見かけたのですが調べてみても具体的なコードなどは乗っておらず。
調べてるうちに月別アーカイブ表示に年区切りを入れるという記事を見つけ以下のコードで近い形には表示させることが出来ました。
<?php $archives_year = strip_tags(wp_get_archives('type=yearly&show_count=0&format=custom&echo=0')); $archives_year_array = split("\n",$archives_year); array_pop($archives_year_array); $archives = wp_get_archives('type=monthly&post_type=replay&use_desc_for_title=0&order=ASC&echo=0'); $archives_array = split("\n",$archives); foreach ($archives_year_array as $year_value){ echo "<h4>".ltrim($year_value)."</h4>\n"; echo "<ul>\n"; foreach ( $archives_array as $archives_value) { if ( intval(strip_tags($archives_value)) == intval($year_value) ) { echo str_replace(intval($year_value)."年","",ltrim($archives_value))."\n"; array_shift($archives_array); } } echo "</ul>\n"; } ?>
出力結果
2013
1月
2月
3月出来ればですが以下のようにしたいです。
①投稿されていない記事の月も取得したい
→現状では投稿された月しか表示されません②「月」を消したい
→可能であれば月を消したいです③function.phpでまとめたい
カスタム投稿はいくつかあるのですが、これだとコードが長いので
<ul><?php wp_get_archives('type=monthly&post_type=hoge'); ?></ul>
と記述して出力出来ればと思います。コードが短くなるのであれば他のやり方でも構いません。■カテ違いは承知ですが、もし先ほど述べたプラグイン(Compact Archives)をカスタム投稿でも利用出来るようになれるのであればそちらでも構いません。
質問が多く申し訳ないですが、どれか一つでもご教授頂けたら幸いです。宜しくお願いします。
- トピック「月別アーカイブをコンパクトにまとめたい」には新たに返信することはできません。