generate_rewrite_rules
云策文档标注
概述
generate_rewrite_rules 是一个 WordPress 动作钩子,在重写规则生成后触发,允许开发者修改或添加自定义规则。它传递 WP_Rewrite 实例作为参数,用于操作重写规则数组。
关键要点
- 触发时机:在所有重写规则创建完成后执行
- 参数:$wp_rewrite(WP_Rewrite 实例,按引用传递)
- 用途:常用于添加自定义端点或修改现有重写规则
- 源函数:do_action_ref_array( 'generate_rewrite_rules', array( &$this ) )
- 引入版本:WordPress 1.5.0
代码示例
function wpdocs_site_custom_endpoint( $wp_rewrite ) {
$feed_rules = array(
'my-account/?$' => 'index.php?account-page=true',
'my-account/edit-profile/?$' => 'index.php?account-edit-profile=true',
);
$wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}
add_action( 'generate_rewrite_rules', 'wpdocs_site_custom_endpoint' );
原文内容
Fires after the rewrite rules are generated.
Parameters
$wp_rewriteWP_Rewrite-
Current WP_Rewrite instance (passed by reference).
Source
do_action_ref_array( 'generate_rewrite_rules', array( &$this ) );
Changelog
| Version | Description |
|---|---|
| 1.5.0 | Introduced. |
Skip to note 2 content
Steven Lin
Example migrated from Codex:
An example of adding new endpoint to Rewrite Rules.
function wpdocs_site_custom_endpoint( $wp_rewrite ) { $feed_rules = array( 'my-account/?$' => 'index.php?account-page=true', 'my-account/edit-profile/?$' => 'index.php?account-edit-profile=true', ); $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules; } add_action( 'generate_rewrite_rules', 'wpdocs_site_custom_endpoint' );