Remove rewrite rules and then recreate rewrite rules.

This function is useful when used with custom post types as it allows for automatic flushing of the WordPress rewrite rules (usually needs to be done manually for new custom post types). However, this is an expensive operation so it should only be used when absolutely necessary. See Usage section for more details.

flush_rewrite_rules() 描述



  • Flushing the rewrite rules is an expensive operation, there are tutorials and examples that suggest executing it on the 'init' hook. This is bad practice.
  • Flush rules only on activation or deactivation, or when you know that the rewrite rules need to be changed. Don't do it on any hook that will triggered on a routine basis. More detail information in the comments on WP Engineer's post: Custom Post Type and Permalink
  • Make sure custom post types and taxonomies are properly registered before flushing rewrite rules, especially during plugin activation: Activation Checklist for WordPress Plugin Developers

<?php flush_rewrite_rules$hard ); ?>

flush_rewrite_rules() 用法



(boolean) (可选) Whether to update .htaccess (hard flush) or just update rewrite_rules transient (soft flush).

默认值: true (hard flush)

flush_rewrite_rules() 参数


This is how you would flush rewrite rules when a plugin is activated or deactivated:

This is how you would flush rules on theme activation:

If you're developing a theme, while building it you can use this snippet of code that will flush rewrite rules when the file containing it is changed, or every 48 hours:

flush_rewrite_rules() 示例


添加于 版本: 3.0

flush_rewrite_rules() 历史


flush_rewrite_rules() 函数的代码位于 wp-includes/rewrite.php

flush_rewrite_rules() 源文件