我已经为我的Wordpress网站添加了一个自定义重写规则,如下所示:
add_rewrite_rule( 'register/bronze', 'index.php?action=register&type=2', 'top' );
然后在template_redirect
操作中,我检查action
querystring变量并加载我的include,如下所示:
$action = get_query_var( 'action' );
if( $action == "register" ) {
include( BG_FILE_PATH . '/templates/register-brand.php' );
exit;
}
一切正常,我的自定义模板显示,但页面标题显示为“找不到页面|网站名称”。
我可以通过自定义模板设置页面标题吗?我试图避免将这些页面设置为Wordpress页面,因为它们是网站运行的基础,我不希望其中一个管理员更改页面设置或完全删除页面。
非常感谢任何帮助。
答案 0 :(得分:8)
WordPress可能会覆盖您的标题,因为它仍然会抛出404(您可以使用firebug验证这一点)。
在模板重定向中包含文件时,WordPress通常会抛出404。
您需要使用以下代码重置标头:
global $wp_query;
$wp_query->is_404 = false;
status_header( '200' ); //if status_header doesn't work, try header("HTTP/1.1 200 OK")
//now that you reset the 404, you can proceed with your include
$action = get_query_var( 'action' );
if( $action == "register" ) {
include( BG_FILE_PATH . '/templates/register-brand.php' );
exit;
}
这应该重置状态标题并允许包含文件的标题正常显示。不需要javascript :)
答案 1 :(得分:0)
您可以通过插入一小段JavaScript来完成此操作:
<script>
$(document).ready(function() {
document.title = 'your title here';
});
</script>
如果您希望标题是动态的,请替换为:
document.title = <?php echo 'your dynamic title here'; ?>;