概要
flush_rewrite_rules
関数は、WordPressにおけるリライトルールを更新するために使用されます。この関数は、カスタム投稿タイプやカスタムタクソノミー、特定のURLパターンを持つページを使用している場合に必要です。
利用シーンの例
- カスタム投稿タイプの登録後。
- カスタムタクソノミーの追加後。
- プラグインのインストールまたはアップデート後にリライトルールをリフレッシュする場合。
- テーマの設定で新しいリライトルールを定義した場合。
- URL構造を変更した直後。
- プラグインが独自のURLスラッグを作成した場合。
- パーマリンク設定を変更した時。
- プラグインのアクティベート時に必須のルールを設定する場合。
構文
flush_rewrite_rules();
パラメータ
この関数は引数を取らず、直接呼び出すことができます。
戻り値
この関数は成功したかどうかのブール値を返しません。成功すれば内部のルールを再生成しますが、エラーは発生しません。
関連する関数
使用可能なバージョン
この関数はWordPress 2.1.0以降で使用可能です。
コアファイルのパス
wp-includes/rewrite.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | 〇 |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
flush_rewrite_rules関数が特定のワードプレスバージョンで非推奨または削除された場合はありません。
サンプルコード
サンプル 1: カスタム投稿タイプの登録
このサンプルコードではカスタム投稿タイプを定義し、投稿タイプが登録された後にリライトルールをフラッシュします。
function my_custom_post_type() {
register_post_type('my_custom_post', [
'labels' => ['name' => 'My Custom Posts'],
'public' => true,
'has_archive' => true,
]);
flush_rewrite_rules();
}
add_action('init', 'my_custom_post_type');
引用元: https://developer.wordpress.org/reference/functions/register_post_type/
サンプル 2: カスタムタクソノミーの登録
このコードでは、カスタムタクソノミーを作成し、登録後にリライトルールを更新します。
function my_custom_taxonomy() {
register_taxonomy('my_custom_tax', ['my_custom_post'], [
'labels' => ['name' => 'My Custom Taxonomies'],
'public' => true,
]);
flush_rewrite_rules();
}
add_action('init', 'my_custom_taxonomy');
引用元: https://developer.wordpress.org/reference/functions/register_taxonomy/
サンプル 3: プラグインの有効化
プラグインが有効化されたときにリライトルールをフラッシュします。
function my_plugin_activation() {
flush_rewrite_rules();
}
register_activation_hook(__FILE__, 'my_plugin_activation');
引用元: https://developer.wordpress.org/reference/functions/register_activation_hook/
サンプル 4: テーマの初期化
テーマが設定された際にリライトルールをクリアする。
function my_theme_setup() {
flush_rewrite_rules();
}
add_action('after_setup_theme', 'my_theme_setup');
引用元: https://developer.wordpress.org/reference/functions/add_action/
サンプル 5: パーマリンク設定の保存
パーマリンク設定が変更されたときにリライトルールをフラッシュします。
function my_permalinks_save() {
flush_rewrite_rules();
}
add_action('update_option_permalink_structure', 'my_permalinks_save');
引用元: https://developer.wordpress.org/reference/functions/add_action/