这就是我现在在一个网站上使用的技术。它涉及为“模板”注册一个查询变量,并注册一个名为/contact
, 内部重写为?template=contact
. 然后,只需在template\\u重定向挂钩处检查该查询变量,如果存在,则包括要加载和退出的页面模板。
/* Add a query var for template select, and and endpoint that sets that query var */
add_action( \'init\', \'wpse22543_rewrite_system\' );
function wpse22543_rewrite_system() {
global $wp, $wp_rewrite;
$wp->add_query_var( \'template\' );
add_rewrite_endpoint( \'contact\', EP_ROOT );
$wp_rewrite->add_rule( \'^/contact/?$\',
\'index.php?template=contact\', \'bottom\' );
$wp_rewrite->flush_rules();
}
/* Handle template redirect according the template being queried. */
add_action( \'template_redirect\', \'wpse22543_select_template\' );
function wpse22543_select_template() {
global $wp;
$template = $wp->query_vars;
if ( array_key_exists( \'template\', $template ) &&
\'contact\' == $template[\'template\'] ) {
/* Make sure to set the 404 flag to false, and redirect
to the contact page template. */
global $wp_query;
$wp_query->set( \'is_404\', false );
include( get_stylesheet_directory().\'/contact.php\' );
exit;
}
}
这将服务于您的联系人。php文件是否有任何请求?模板=联系人或/联系人。
也许有一种更快的方法,但这是有效的。这里有一个更全面的教程:Create Fake Pages in WordPress.