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



お勧め

Login rebuilder 2.3.0の新機能を紹介(2018年5月27日 更新)

プラグイン「Login rebuilder」はログイン時の履歴(ログ)や不正なログインページへのアクセス履歴を保存している。これらの履歴情報はダッシュボートで確認できるが、バージョン2.3.0においてそれぞれがダウンロードできるようになった。

古めのリビジョンを削除した時のメモ(2022年5月16日 更新)

大きく育ったデータベースを整理するため、古めのリビジョンとそれに紐づいたカスタムフィールドデータを削除。と思ったら「The total number of locks exceeds the lock table size」というエラーが発生して削除できなかった。

決まった値を返すだけの関数群(2018年5月27日 更新)

WordPressのソースコードを眺めているとフィルター関数名で'__return_○○'が指定されている部分を時々見かけます。それらの関数定義を見てみると、すべて決まった値を単純に返すだけでした。これらの関数がちょっと気になったので、まとめてみました。

「Align widgets horizontally」プラグインのフィルター使用例(2024年5月15日 更新)

ダッシュボードのウィジェットを横並びに変える「Align widgets horizontally」プラグインには緒設定を変更できるフィルターが用意されている。ここではフィルターの使い方と設定できる項目について紹介する。

WP_Postオブジェクトで投稿情報を直感的に使う(2012年10月4日 更新)

WordPress 3.5で登場するであろう WP_Postクラス。WordPressの投稿情報は、投稿情報本体のほか、カテゴリーや投稿タグ、カスタムフィールドなど、いくつかに分散して記録され、それぞれの情報を取得する際は、いくつかの関数をしていた。新しいWP_Postクラスにより、その習慣とおさらばできるかもしれない。