flush_rewrite_rules()


WordPressのflush_rewrite_rules()関数は、カスタム投稿タイプやカスタムタクソノミーを登録した際に、パーマリンク構造を再生成するために使用されます。この関数を使用すると、サイト内のリンク構造を正確に更新することができます。

シンタックス

flush_rewrite_rules();

例 1: カスタム投稿タイプを登録後にリライトルールを更新

カスタム投稿タイプを登録した後にリライトルールをリフレッシュします。

<?php
function my_custom_post_type() {
    register_post_type( 'custom_post', array(
        'labels' => array(
            'name' => 'Custom Posts',
        ),
        'public' => true,
        'rewrite' => array( 'slug' => 'custom-posts' ),
    ) );
    flush_rewrite_rules();
}
add_action( 'init', 'my_custom_post_type' );
?>

例 2: プラグインを有効化した際にリライトルールをフラッシュ

プラグインを有効化する際にリライトルールを更新します。

<?php
function my_plugin_activate() {
    flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'my_plugin_activate' );
?>

例 3: プラグインを無効化した際にリライトルールを更新

プラグインを無効化した際にリライトルールをリフレッシュします。

<?php
function my_plugin_deactivate() {
    flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, 'my_plugin_deactivate' );
?>

例 4: カスタムタクソノミーの登録後にリライトルールをフラッシュ

カスタムタクソノミーを登録した後にリライトルールをリフレッシュします。

<?php
function my_custom_taxonomy() {
    register_taxonomy( 'custom_taxonomy', 'post', array(
        'labels' => array(
            'name' => 'Custom Taxonomies',
        ),
        'rewrite' => array( 'slug' => 'custom-taxonomies' ),
    ) );
    flush_rewrite_rules();
}
add_action( 'init', 'my_custom_taxonomy' );
?>

注意事項

  • flush_rewrite_rules()は、負荷の高い操作であるため、頻繁に呼び出すべきではありません。
  • この関数は通常、initフックの外で使用するべきではありません。
  • リライトルールを更新する必要がある場合にのみ使用してください。

関連機能: