我想知道如果没有登录,我将如何在私人网页上覆盖wordpress的默认404?看了一下post-template.php但是我没有什么可以改变的,这让它起作用了吗?
答案 0 :(得分:2)
为私人页面创建自定义消息
将此代码添加到主题中的404.php顶部:
//Redirect if requested page is private
$page_requested = get_page_by_path($_SERVER['REQUEST_URI']);
$page_status = get_post_status( $page_requested->ID );
if( $page_status == 'private' ){
wp_redirect( get_site_url().'/path/to/private/login' ); exit;
}
答案 1 :(得分:0)
我不是百分百肯定我明白你在问什么,但听起来你想要创建一个自定义的404页面,并根据是否有人登录来改变它。
要做到这一点:创建一个404.php
文件并将其上传到您的主题目录(与header.php
,footer.php
,sidebar.php
等相同的主题目录。然后,在代码中,使用此函数:
if( is_user_logged_in() ) {
// Code for logged in users
}
else {
// Code for unknown users
}
那应该为你做。
答案 2 :(得分:0)
我的信誉不足,无法通过单词对上述答案发表评论。但是,如果您只需要将访客重定向到登录名,请将wp_redirect更改为auth_redirect,它将重定向回到登录后最初请求的页面...
//Redirect if requested page is private
$page_requested = get_page_by_path($_SERVER['REQUEST_URI']);
$page_status = get_post_status( $page_requested->ID );
if( $page_status == 'private' ){
auth_redirect(); exit;
}