リライトルールを追加する

WordPressのURLをカスタマイズするにはリライトルールを追加すればよい。
functions.phpなどに以下を記述する。

add_action('init', 'my_rewrite_rule');
function my_rewrite_rule($rules){
    add_rewrite_rule($regex, $redirect, $after');
}

$regex
リクエストされたURLにマッチする正規表現を書く。グループも使用できる。
例:’^product/([0-9]+)/([0-9]+)/?’

$redirect
$regexがマッチしたときに紐付けたいURLを書く。マッチしたグループを挿入するには $matches[] を使用する。
例:’index.php?page_id=$matches[1]&option=$matches[2]’

$after
ルールを挿入する位置。’top’ または ‘bottom’。

上記の例だと、たとえば

http://www.example.com/product/328/5/

がリクエストされた場合、

http://www.example.com/index.php?page_id=328&option=5

が呼び出される。

ただ、このままだとWordpressは「option」の値を認識できないので、標準で用意されている以外のパラメータを新たに追加したい場合は以下を書き加える。

//パラメータを追加
add_filter('query_vars', 'custom_query_vars');
function custom_query_vars($vars){
    $vars[] = 'option';
    return $vars;
}

こうすることで、get_query_var()を使って値を取り出せるようになる。

if(get_query_var('option')) echo esc_html(get_query_var('option'));

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です