试图为显示事件的插件获取永久链接
我有这个:
function my_add_rewrite_rules() {
global $wpdb;
$org_options = get_option(\'event_settings\');
// get id for events page
$event_page_id = $org_options[\'event_page_id\'];
$SQL = \'SELECT post_name FROM wp_posts WHERE ID = %d\';
$event_page = $wpdb->get_var( $wpdb->prepare( $SQL, $event_page_id ));
add_rewrite_rule( $event_page . \'/([^/]+)?/$\', \'index.php?pagename=\' . $event_page . \'&event_slug=$matches[1]\', \'top\' );
add_rewrite_rule( $event_page . \'/([^/]+)?$\', \'index.php?pagename=\' . $event_page . \'&event_slug=$matches[1]\', \'top\' );
}
add_action( \'init\', \'my_add_rewrite_rules\' );
还有这个:
function add_query_vars( $query_vars ) {
$query_vars[] = \'event_slug\';
return $query_vars;
}
add_filter( \'query_vars\', \'add_query_vars\' );
更新“event\\u settings”(事件设置)选项时,将刷新管理中的重写规则。
我正在使用Jan Fabry开发的一个名为“Monkeyman重写分析器”的插件,它可以向您展示重写规则是如何处理的(看看吧,它很棒)。
这是上述结果:
Test URL
http://localhost/events/some-event
Pattern
events/([^/]+)?$
Substitution
pagename: events
event_slug: some-event
还显示为使用附加的尾部斜杠:
Test URL
http://localhost/events/some-event/
Pattern
events/([^/]+)?/$
Substitution
pagename: events
event_slug: some-event
这些结果似乎工作正常,但当我输入“http://localhost/events/some-event“在我的浏览器中,它不会像应该的那样重定向。
生成的$\\u GET和$\\u请求数组为空。
我做错了什么???
非常感谢您提供的任何帮助,但更感谢您提供正确的答案;)
谢谢