add_rewrite_rule

説明

void add_rewrite_rule( string $regex, string $redirect [ , string $after = 'bottom' ] )
リライトルールを追加する(リライトルール追加用のデータを登録する)。

パラメータ

  • $regex
    ルールを適用するパターンを指定。
  • $redirect
    ルールにマッチした場合に書き換えるパターンを指定。
  • $after
    ルールを追加する場所として'top'または'bottom'を指定(省略時は'bottom')。

返り値

返り値はありません。

注意

本関数はテーマ(主にfunctions.php)やプラグインで使用可能だが、各phpファイルのロード時はグローバル変数wp_rewriteが存在しないため呼び出すことはできず(呼び出すとエラーになる)、initアクションなどを利用しなければならない。
パラメータ$regexにはリクエストURLからサイトアドレス部分を取り除いた正規表現パターンを指定する。$regex内のグループ化演算子は、パラメータ$redirect内の後方参照パターン($matches[n]のこと。[]内のnは1以上の数)に適用される。

実際にルールを適用されるためには、管理者のパーマリンク設定ページで「変更を保存」ボタンを押す( flush_rewrite_rules関数を呼び出す)。追加したリライトルールを削除したい場合は、そのルールを追加したadd_rewrite_rule関数の記述を削除し、管理者のパーマリンク設定ページで「変更を保存」ボタンを押すこと。


使用例

  • リライトルールを追加する。
    <?php
    function custom_rewrite_rules() {
    	add_rewrite_rule( '^topic\-([0-9]+)?', 'index.php?p=$matches[1]', 'top' );
    }
    add_action( 'init', 'custom_rewrite_rules' );
    ?>

フィルター

実行するフィルターはありません。

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/rewrite.php

最終更新 : 2018年05月27日 10:45



お勧め

投稿ページでユニークなテンプレートを選択しよう(2018年5月27日 更新)

4.7の変更点に「投稿タイプテンプレート」がある。これは従来固定ページ('page')向けに任意のテンプレートを適用できる機能が拡張されたもので、投稿ページ('post')はもちろんカスタム投稿タイプのページにも適用可能になっている。

WordPressの鼓動(2013年10月1日 更新)

WordPressでは、Ajaxを利用する方法の1つとして add_action関数を利用することができる。この方法を調べている過程で、'heartbeat'というおもしろそうなAjaxアクションがあったので、紹介しておく。

「テキスト」モードと「ビジュアル」モードを行き来すると投稿内容の一部が消える(2018年5月27日 更新)

仕事がらサイトの引っ越し作業のお手伝いをすることがあるのですが、今回は引っ越しにあわせてWordPressを「3.7.1」から最新版「4.1.1」にアップデートすることになりました。ここで紹介するのはこの案件で発生したトラブルの話です。

フォーム内のエスケープ処理を考える(2018年10月19日 更新)

WordPressにはエスケープ処理を行う esc_html関数と esc_attr関数がある。HTML要素(タグ)の属性値ならesc_attr関数を、それ以外はesc_html関数を使うことがほとんどだが、今回esc_html関数が適していないと思われるケースに遭遇した。

一定時間でログアウトする(2013年5月23日 更新)

ログイン関係を調べている関係で、 wp_set_auth_cookie関数に行き着く。ログイン画面の「ログイン状態を保持する」がチェックされた場合、クッキーの有効期限は14日間。チェックされていない場合は、ブラウザが閉じるまで常に有効となっているんだね。