钩子文档

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).

More Information

Triggers after all rewrite rules have been created. The rewrite object is passed as argument by reference.

Source

do_action_ref_array( 'generate_rewrite_rules', array( &$this ) );

Changelog

Version Description
1.5.0 Introduced.

User Contributed Notes

  1. Skip to note 2 content

    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' );