会社のサイト等をページ主体で構成していくことが多いですが、「お知らせ」や「ニュース」といったものは投稿で実装することがほとんどです。(というほどたくさん作ったわけではないのですが・・・)
そういうとき、「お知らせ」のバックナンバーページのサイドバーに「お知らせ」だけの年別や年月別のアーカイブリストを出したい、という要件が自然とあがってきます。
これで引っかかりました。今も一部解決、一部未解決です。その課題を忘れないように解決した方法と合わせてまとめました。
はじめ、wp_get_archivesという関数があったためパラメーターを渡すだけかと思ってましたが、そんなパラメーターはないもようです。
wordpress本体のコードを読み解いたわけではないですが、ネットの情報ではなさそうでした。WP2.7.1です。
そういうわけでプラグインを検索。探し方が悪いのか、そもそも違うアプローチで実現しているのか・・・、なかなか見つかりませんでした。
しかし、需要がありそうな機能ですので頑張って探してみると、外国の方が作ってらっしゃいました。Thank You!
そのプラグインがこちら↓
プラグイン名:Archives for a category
サイト:http://kwebble.com/blog/2007_08_15/archives_for_a_category
最新バージョンの1.4が2009年2月22日なので安心です。
機能としては、wordpressのwp_get_archives関数にカテゴリーを引数として渡すことが出来るようになるようです。
使い方はこちら。
/*デフォルトの月別アーカイブでカテゴリーIDの1を指定*/
<?php wp_get_archives('cat=1'); ?>
/*カテゴリーIDの1と3を指定*/
<?php wp_get_archives('cat=1,3'); ?>
/*カテゴリーIDの2のみを除く*/
<?php wp_get_archives('cat=-2'); ?>
/*カテゴリーIDの2と8を除く*/
<?php wp_get_archives('cat=-2,-8'); ?>
/*ドロップダウンでカテゴリーIDの1を表示*/
<?php wp_get_archives('format=option&cat=1'); ?>
/*年別でカテゴリーIDの1を表示*/
<?php wp_get_archives('type=yearly&cat=1'); ?>
一番下以外はプラグインの作者サイトからのものを、たぶんこんな意味というレベルで訳したものです。
一番下のものが自分で実際に使ったコード。こんなふうに、wp_get_archivesがもつ通常のパラメーターにcatが追加できるようになります。
作者様には本当に感謝です。
そして、一部未解決の部分とは、nifty hosting サービスで起こりました。いや起こってます。
おそらくですが、怪しいとにらんでいるのは、niftyではhtaccessでmod_rewriteが使えないとのこと。実際にサポートに電話で確認しました。別サービスでもないのですか?という問い合わせには、ラクーカンというサービスがあるが、これはそもそもapacheではないので・・・、というご回答。
niftyでのmod_rewriteは無理という結論でした。
これが原因なのでしょうか。まだ未解決です。解決次第更新しましょう。