ワードプレスのflush_rewrite_rules関数の使用方法・解説

概要

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/

この関数について質問する


上の計算式の答えを入力してください