WordPressで年次カテゴリー別アーカイブを出力するメモ : WordPress

Pocket

年次カテゴリー別アーカイブをWP_Rewriteのadd_permastructメソッドを使い構造を追加し実現するメモです。

前提

管理画面でパーマリンク設定を下記のように設定しています。

カスタム構造 /%category%/%post_id%.html

上記設定で%category%というrewritecodeが利用できるようになります。
(%year%はデフォルトで利用できます。)

permastructの追加

2016年のfooカテゴリーのアーカイブを下記URLで表示します。

example.com/year_and_category/2016/foo

functions.phpへ下記を追加しました。

function year_and_category_archive() {
    global $wp_rewrite;
    $wp_rewrite->add_permastruct( 'year_and_category', '/year_and_category/%year%/%category%/', false );
}
add_action('init', 'year_and_category_archive');

管理画面でパーマリンクを更新します1
追加した構造は下記で確認できます。

$wp_rewrite->extra_permastructs

参考コード

リライト関連の設定を確認するコードです。

<?php
global $wp_rewrite;
// コード %year%, %category%など
var_dump( $wp_rewrite->rewritecode );
// 変換規則 [0-9]{4}, (.+?)など
var_dump($wp_rewrite->rewritereplace);
// 対応クエリ year=, category_name=
var_dump($wp_rewrite->queryreplace);
// 追加した構造確認
var_dump($wp_rewrite->extra_permastructs)
?>

  1. コード内でrefleshを行う処理は重いので管理画面からで行うほうが良いと思います。 

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。