WP-如果成员已登录,则重定向

时间:2013-08-02 作者:BitBug

我正在使用插件WP成员。我的WordPress首页是WP成员的登录页面。

在我的主题函数中。php我使用这个WP成员过滤器和函数在成员登录后将其重定向到帖子页面。

add_filter( \'wpmem_login_redirect\', \'my_login_redirect\' );

function my_login_redirect()
{
// return the url that the login should redirect to
return \'http://example.com/specials/\';
}
这是按设计进行的。但是,当有人返回站点并且已经从以前的会话登录时,此重定向不会检测到他们的登录状态并重定向他们。我假设是因为在有人登录之前不会调用该函数。

我对编程很有经验,但对WordPress的工作还不熟悉。我还没有找到任何关于如何解决这一问题的信息,尽管我强烈怀疑这是真的。有人能帮我指出正确的方向吗?

我提前感谢大家的帮助和指导。

非常感谢。

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

我假设是因为在有人登录之前不会调用该函数。

这是正确的。wpmem_login_redirect 是用户实际登录时发生的筛选器。如果他们正在访问该站点,并且由于具有有效的cookie而处于登录状态,则不会重定向他们。

从用户体验的角度来看,即使某人处于登录状态,在某人返回时重定向也不是很好的方式。同样,您将很难找到一种方法,而不仅仅是重定向它们,无论它们是返回还是浏览站点。

要用于重定向的函数是wp_redirect(). 您可以将其附加到任何信息发送到下游浏览器(如init)之前发生的某些操作,并测试这些信息是否已登录:

add_action( \'init\', \'my_redirect\' ); function my_redirect(){ if( is_user_logged_in() ) { wp_redirect( \'http://somedomain.com/some-page\' ); exit(); } }

正如我所说,这并不能区分用户是刚刚出现,还是从一个页面转到另一个页面,所以要使这实际上有用而不令人讨厌,您需要添加一些确定这一点并相应采取行动的过程。

结束

相关推荐

如何将这段footer.php代码更改为在重新加载时调用随机图像?

这来自footer.php 我想修改wordpress主题的文件。我希望在刷新时加载五个图像中的一个,而不是1.jpg 每一次。<script type=\"text/javascript\"> <?php if((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag()) || ($posttype == \'post\