如何将没有查看内容权限的用户重定向到自定义页面?

时间:2015-12-16 作者:ekendra

我希望没有权限查看内容的用户在显示默认的“未找到任何内容”页面时,能够重定向到页面。我已经重定向了404,但这不完全是404。内容存在,他们只是没有查看它的权限。

2 个回复
SO网友:N00b

重定向和强制404对SEO没有那么好,也可能会损害用户体验。

我建议您采用这种方法(如果您精通代码):

<?php
//Your page template

//Check if user have permission
if ( $permission ) {

     //All your page/post content here
}

//Else user have no permission -> show him something else like notice
else {

    ?>
    <h1>You don\'t have permission to see that page.</h1>
    <a href="//www.site.com/buy-access/">Press here to buy access!</a>

    <?php

    //Or whatever your page / bussiness model is
} ?>
如果这种方法对您有效,请告诉我。

SO网友:Mike

你应该加入template_redirect. 将以下内容添加到函数中。php。

template_redirect 是在输出任何HTML内容之前加载的最后一个挂钩。HTML输出后,wp_redirect 将生成错误。

你没有提到你是如何验证用户权限的,但我想你手头有这个。

function redirect_users()    {
    if( is_admin() )
        return;

    if( !$permission )    {
        wp_redirect( \'http://pagetoredirectto.com\' );
        exit;
    }
}
add_action( \'template_redirect\', \'redirect_users\' );

Codex: wp_redirect

Codex: template_redirect

相关推荐

Redirection problems

请帮助我克服重定向问题。我需要在子域上工作,而不是在主域上工作,但这里两个域是不同的。我所做的是-将所有(website.com)文件复制到另一个子域(demo.websiteA.com),并根据wp配置更改数据库名称。php文件。但每当我尝试打开演示时。网站a。com它重定向到网站。com公司请帮帮我提前感谢