WordPress有自己的系统来管理重定向和页面路由,您无需编辑。htaccess文件。您需要从函数开始add_rewrite_rule()
.
它需要3个参数:
路由(作为regex)查询变量account/customer-bookings/
. 如果它是一个页面,它可以是page_id
. 要复制WordPress已经完成的功能,可以是(XXX是特定的page\\u id):
add_rewrite_rule(
\'^account/customer-bookings/?$\',
\'index.php?page_id=XXX\'
);
现在,您只需扩展以下内容:(
don\'t forget to flush rewrite rules after adding this code!)
add_action(\'init\', \'wpse_view_booking_rewrite\');
function wpse_view_booking_rewrite() {
add_rewrite_rule(
\'^account/customer-bookings/view-booking/([^/]+)/?$\',
\'index.php?page_id=XXX&view-booking=$matches[1]\',
\'top\'
);
}
这应该已经显示了正确的页面。但是,您将无法使用
get_query_var(\'view-booking\')
, 因为它不是默认变量。要解决这个问题,只需告诉WP像这样小心
add_filter(\'query_vars\', \'wpse_view_bookings_filter\');
function wpse_view_bookings_filter($vars) {
$vars[] = \'view-booking\';
return $vars;
}
此时WordPress知道变量,并通过调用
get_query_var(\'view-booking\')
您将获得适当的变量。