如果用户已登录并在主页上重定向,则使用PHP

时间:2018-02-03 作者:Student

我是一个彻头彻尾的傻瓜,但我正在努力学习,我被难住了。

我有一个登录页面作为我的静态主页,我想做一个if语句,这样如果用户登录并转到静态主页,他们就会被重定向到另一个包含内容的页面。

到目前为止,这是我所拥有的,但它不起作用:

if ( is_user_logged_in() && is_page( home_url ) ) {
    wp_redirect(\'http://example.com/\') ;
}
你能不能不仅给我一个答案,而且给我一个小小的解释,让我知道我是怎么出错的?

感谢所有能帮忙的人。

2 个回复
SO网友:Johansson

首先home_url 没有提供任何东西。您应该使用is_home() 功能。

之后,您需要在尝试重定向时退出脚本。因此,您的完整代码应该如下所示:

if ( is_user_logged_in() && is_home() ) {
    wp_redirect(\'http://example.com/\') ;
    exit();
}
您还应该钩住右侧的动作钩。用于重定向的正确挂钩是template_redirect:

add_action ( \'template_redirect\', \'redirect_my_homepage\' );
function redirect_my_homepage(){
    if ( is_user_logged_in() && is_home() ) {
        wp_redirect(\'http://example.com/\') ;
        exit();
    }
}

SO网友:Marcelo Henriques Cortez

那么,您需要检查用户是否使用“is\\u user\\u logged\\u in()”登录。Check the Code Reference

之后,您需要检查用户是否使用“is\\u front\\u page()”查看首页。Check the Code Reference

之后,需要使用“wp\\u redirect()”重定向。Check the Code Reference

最后,但并非最不重要的是,您需要“退出”,如“wp\\u redirect()”所示。

因此,您的最终代码应该如下所示:

if ( is_user_logged_in() && is_front_page() ) {
    wp_redirect(\'http://yoursite.com/another-page\') ;
    exit;
}
您可以使用“exit”或“die”,因为它们有点相同,但您不能忘记使用其中一个。

结束

相关推荐

Wp-config.php中的if语句,这可能吗?

我已经到处搜索了,但找不到任何确定的东西。我有WordPress multisite,我有一个插件(在每个站点上激活),需要在wp config中设置slug参数。php。不幸的是,网络的每个站点都需要不同的slug参数。我想知道是否可以在wp config中放入if语句。php,以便根据$_SERVER[\'HTTP_HOST\'] 变量代码如下:if ( stristr( $_SERVER[\'HTTP_HOST\'], \'site.com\' ) ) { define(\