add_rewrite_rule( string $regex, string|array $query, string $after = 'bottom' )
Adds a rewrite rule that transforms a URL structure to a set of query vars.
描述
Any value in the $after parameter that isn’t ‘bottom’ will result in the rule being placed at the top of the rewrite rules.
参数
- $regex
-
(string)
(Required)
Regular expression to match request against. - $query
-
(string|array)
(Required)
The corresponding query vars for this rewrite rule. - $after
-
(string)
(Optional)
Priority of the new rule. Accepts ‘top’ or ‘bottom’.Default value: ‘bottom’
源代码
File: wp-includes/rewrite.php
function add_rewrite_rule( $regex, $query, $after = 'bottom' ) {
global $wp_rewrite;
$wp_rewrite->add_rule( $regex, $query, $after );
}
更新日志
Version | 描述 |
---|---|
4.4.0 | Array support was added to the $query parameter. |
2.1.0 | Introduced. |
相关函数
Uses
-
wp-includes/class-wp-rewrite.php:
WP_Rewrite::add_rule()
Used By
-
wp-includes/class-wp-post-type.php:
WP_Post_Type::add_rewrite_rules() -
wp-includes/rest-api.php:
rest_api_register_rewrites()
User Contributed Notes
-
Skip to note content
You must log in to vote on the helpfulness of this noteVote results for this note: 1You must log in to vote on the helpfulness of this note
Contributed by
Samuel Elh
A quick example: processing rules to make a subscribers page, hoping it helps.
add_action('init', function() { $page_id = 2; // update 2 (sample page) to your custom page ID where you can get the subscriber(s) data later $page_data = get_post( $page_id ); if( ! is_object($page_data) ) { // post not there return; } add_rewrite_rule( $page_data->post_name . '/subscriber/([^/]+)/?$', 'index.php?pagename=' . $page_data->post_name . '&my_subscribers=1&my_subscriber=$matches[1]', 'top' ); });
Now in your page template ( if you have one, or while filtering this custom page’s content ), you can get the displayed subscriber slug by calling
get_query_var('my_subscriber')
, but first, pass'my_subscriber'
to the query variables:add_filter('query_vars', function($vars) { $vars[] = "my_subscriber"; return $vars; });
Things that were in WP Codex site and did not get migrated for whatever reason.
NOTE: When using $matches[] to retrieve the values of a matched URL, capture group data starts at 1, not 0.
IMPORTANT: Do not forget to flush and regenerate the rewrite rules database after modifying rules. From WordPress Administration Screens, Select Settings -> Permalinks and just click Save Changes without any changes.
你可能对这些文章感兴趣:
- wordpress函数esc_html_x()用法示例
- wordpress函数esc_html()用法示例
- wordpress函数esc_html_e()用法示例
- wordpress函数esc_attr_x()用法示例
- wordpress函数esc_attr__()用法示例
- wordpress函数esc_attr()用法示例
- wordpress函数esc_attr_e()用法示例
- wordpress函数enqueue_embed_scripts()用法示例
- wordpress函数ent2ncr()用法示例
- wordpress函数enqueue_comment_hotkeys_js()用法示例
- wordpress函数edit_user()用法示例
- wordpress函数email_exists()用法示例
- wordpress函数endElement()用法示例
- wordpress函数edit_term_link()用法示例
如有疑问,请前往问答中心反馈!
反馈