Archives for a categoryで解決!wp_get_archivesでカテゴリー別・年別アーカイブって出来ないのか・・・

会社のサイト等をページ主体で構成していくことが多いですが、「お知らせ」や「ニュース」といったものは投稿で実装することがほとんどです。(というほどたくさん作ったわけではないのですが・・・)

そういうとき、「お知らせ」のバックナンバーページのサイドバーに「お知らせ」だけの年別や年月別のアーカイブリストを出したい、という要件が自然とあがってきます。

これで引っかかりました。今も一部解決、一部未解決です。その課題を忘れないように解決した方法と合わせてまとめました。

はじめ、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は無理という結論でした。

これが原因なのでしょうか。まだ未解決です。解決次第更新しましょう。

タグ: ,

コメントをどうぞ