WP_Rewrite クラスの使い方|説明・引数・注意点

説明

WP_Rewrite は、パーマリンクの書き換えルールを管理するクラスです。グローバル変数 $wp_rewrite から使います。

基本構文

global $wp_rewrite

引数

  • flush_rules():ルールを再生成
  • permalink_structure:現在のパーマリンク構造
  • using_permalinks():パーマリンクを使っているか

戻り値

リライトルールを扱うオブジェクト。

使い方(サンプル)

global $wp_rewrite;
if ( $wp_rewrite->using_permalinks() ) {
	// パーマリンク有効
}

注意点

  • flush_rules() は処理が重いため、頻繁に呼んではいけません。
  • 通常は add_rewrite_rule() や flush_rewrite_rules() を使います。

実務での使いどころ

  • リライトルール(URLの規則)の、設定や、更新を、行うとき(global $wp_rewrite)。
  • パーマリンクの構造が、使われているかを、確認するとき(using_permalinks())。

よくあるミスと対処

  • flush_rules() を、毎回のリクエストで呼んでいる。処理が重くなる。flush_rewrite_rules() を、有効化時などに、一度だけ呼ぶ。
  • パーマリンク設定が「基本」のサイトで、リライトルールの動作を、前提にしている。
  • リライトルールの追加は、add_rewrite_rule() などの関数を使う。クラスのプロパティを、直接書き換えない。

NG例

add_action( 'init', function () {
	global $wp_rewrite;
	$wp_rewrite->flush_rules(); // 毎回のリクエストで、実行される
} );

OK例

register_activation_hook( __FILE__, function () {
	my_register_rewrite_rules();
	flush_rewrite_rules();
} );

使い分け早見表

やりたいこと 使うもの
リライトルールを更新する flush_rewrite_rules()
ルールを追加する add_rewrite_rule()
パーマリンク構造が有効か確認 $wp_rewrite->using_permalinks()

関連項目

flush_rewrite_rules()

公式リファレンス:WP_Rewrite | WordPress Developer Resources

コメント

タイトルとURLをコピーしました