限制未登录用户访问某些页面的正确方法

时间:2012-08-25 作者:chifliiiii

我想知道哪种方法是正确的,我应该使用哪种动作挂钩。

我有自定义的登录/注册页面,因此,如果用户尝试转到禁止页面,而该页面未登录,我会将其重定向到登录页面。

当前在我的功能中。php我得到以下信息:

/*
*   Restrict non logged users to certain pages
*/

add_action(\'template_redirect\',\'my_non_logged_redirect\');
function my_non_logged_redirect()
{
     if ((is_page(\'mi-perfil\') || is_page(\'agregar-empresa\')) && !is_user_logged_in() )
    {
        wp_redirect( home_url() );
        die();
    }
}   
我在使用正确的方法/挂钩,还是应该使用另一种方法或更简单的方法?

3 个回复
最合适的回答,由SO网友:chifliiiii 整理而成

我找不到更好的方法,除了:

/*
*   Restrict non logged users to certain pages
*/

add_action(\'template_redirect\',\'my_non_logged_redirect\');
function my_non_logged_redirect()
{
     if ((is_page(\'mi-perfil\') || is_page(\'agregar-empresa\')) && !is_user_logged_in() )
    {
        wp_redirect( home_url() );
        die();
    }
} 

SO网友:scohoe

我只想说声谢谢,我能够使用它,做了我希望做的事情,将行改为涵盖类别,并将人们发送到我的登录页面,而不是主页url,

/*
*   Restrict non logged users to certain pages
*/

add_action(\'template_redirect\',\'my_non_logged_redirect\');
function my_non_logged_redirect()
{
     if ((in_category(1) && !is_user_logged_in() ))
    {
        wp_redirect( \'http://mysites.com/loginpage/\' );
        die();
    }
}

SO网友:Puneet Sahalot

您想对未登录用户隐藏的帖子/页面可以作为“私有”发布,网站的任何公共访问者都无法访问。这样,您就不需要实现任何类型的重定向或自定义代码。您可以找到更多信息here.

结束

相关推荐

Exclude pages by menu order

我有一个“默认页面生成器”的主题激活我已经创建在该文件中,我为每页设置了“menu\\u order”。i want to exclude pages with menu order bigger then 50 from the default wp_list_pages menu是否有方法检查/检索每页的“menu\\u order”?如果有,您能想出一种方法将其集成到wp\\u list\\u pages函数中吗?