Wordpress覆盖404私有页面

时间:2011-11-29 12:52:51

标签: php wordpress

我想知道如果没有登录,我将如何在私人网页上覆盖wordpress的默认404?看了一下post-template.php但是我没有什么可以改变的,这让它起作用了吗?

3 个答案:

答案 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.phpfooter.phpsidebar.php等相同的主题目录。然后,在代码中,使用此函数:

if( is_user_logged_in() ) {
    // Code for logged in users
}
else {
    // Code for unknown users
}

那应该为你做。

来源:Creating an Error 404 PageFunction - Is user logged in

答案 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;
}