add\\u rewrite\\u rule($regex,$redirect,$after);
<小时>
Rewrite rules to scripts other than index.php
这个
$redirect
重定向到自定义PHP脚本时,参数的工作方式略有不同,因为WordPress将这些重定向委托给
.htaccess
而不是自己处理它们。因此,querystring变量的编写方式应该如下
$1
而不是
$matches[1]
.
就个人而言,我会使用重写规则指向index.php
. 这样,该规则也将在Apache之外工作。
add_action( \'init\', \'se343855_rewrite_rules\' );
add_filter( \'query_vars\', \'se343855_query_vars\' );
function se343855_rewrite_rules()
{
add_rewrite_rule(
\'^page/form/([^/-]*)-([^/]*)?$\',
// Or maybe:
// \'^page/form/([^/-]*)(?:-([^/]*))?$\',
//
\'index.php?sign1=$matches[1]&sign2=$matches[2]\',
\'top\'
);
}
function se343855_query_vars( $vars )
{
array_push( $vars, \'sign1\', \'sign2\' );
return $vars;
}
如果设置了查询变量,则加载自定义模板(
sign1
或
sign2
):
add_filter( \'template_include\', \'se343855_template_include\', 50 );
function se343855_template_include( $template )
{
$sign1 = get_query_var(\'sign1\', false);
$sign2 = get_query_var(\'sign2\', false);
if ( $sign1 !== false || $sign2 !== false ) {
// if this code is located in plugin file
$template = plugin_dir_path(__FILE__) . \'/pages/form.php\';
}
return $template;
}
使用
get_query_var() 获取的值
sign1
或
sign2
.
在里面form.php
您可以使用的文件get_header()
和get_footer()
.