テンプレートカスタマイズWordpressでコーポレートサイトを作成するとき、「お知らせ」というカテゴリーを年別で出力したいという場合があると思います。Wordpressの標準機能ではちょっと難しかったりしますよね。この記事ではカテゴリーを年別に出力する方法をご紹介します。※Wordpress3.04を使用しています。Linkカテゴリー&日付アーカイブを指定するURIカテゴリーごとの年別をアーカイブを出力したい場合、URIにカテゴリー(category)と日付(data)両方指定できれば実現できそうです。次のようなカテゴリーがあるとします。news「2010年」の「お知らせ」を出力する場合、パーマリンクがデフォルトの状態だと次のようなURIになります。http://localhost/?m=2010&cat=3でも、パーマリンクを標準のまま使用している人はあまりいないですよね?特にコーポレートサイトだとSEOなどの関係でいろいろ言われそうです。ここでは次のようにパーマリンクをカスタマイズします。/%category%/%post_id%.htmlしかし、こうしてしまうと「category」と「date」両方の指定ができなくなってしまいます。これを実現するためにfunctionsファイルに以下のコードを追加します。functions.php/*この部分処理が重くなるようです、代わりに理画面のパーマリンク設定で更新を行ってください。WordPress※管理画面のパーマリンク設定で更新を行ってください。(どうなっているのかわかりませんが)これで以下のようなURIで指定したカテゴリーの年別アーカイブを表示できるようです。http://localhost/category/news/date/2010指定したカテゴリーアーカイブへのリンクを作成する通常のアーカイブリストなら「wp_get_archives」でアーカイブへのリンク出力してくれますが、カスタマイズされたパーマリンクでは当然標準機能では出力できませんよね。ここではSQL文で地味にリンクリストを出力してみます。initフックで呼び出してるflush_rules()は不要ですよ。コードを追加してから管理画面でパーマリンクの更新ボタンを一度押せばOKです。http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Rewrite>flush_rules関数はとても遅いので、実装するときにはすべてのページで実行されるinitフィルターで呼び出さないようにしてください。教えて頂ありがとうございます。REPLYNAMEE-MAILURLコードを書く場合は<pre>で囲んでください。WixこのブログではjQueryやWordPressを中心としたWeb制作関係のことを書いております。ご意見ご感想などお気軽にコンタクトフォームよりお問い合わせください。Web関係のお仕事も募集しております。