在将邮件头发送到浏览器之前,需要确定是否重定向。否则,在呈现页面时可能会出现PHP警告(即错误)。This makes the timing of the use of wp_redirect()
incorrect in the other answers. (功能正确,只是使用不当。)
如果要将用户重定向到另一个页面,则需要尽早将其挂接,以便仍然可以安全地重定向用户,但要足够晚,以便获得有关该页面的信息(如果要检查用户试图查看的页面)。
一个简单的例子如下:
add_action( \'template_redirect\', \'my_redirect_to_login\' );
function my_redirect_to_login() {
if ( ! is_user_logged_in() ) {
wp_redirect( wp_login_url() );
exit();
}
}
这是一个通用的WP示例,应该适用于一般用途。然而,由于您提到了正在使用的WP Members插件,WP成员中有一些API函数将/可以与此一起使用。
以下示例(摘自the plugin\'s documentation) 演示在以下情况下如何将用户重定向到登录页面:(1)用户未登录;(2)当前页面不是插件的登录、注册或用户配置文件页面:
add_action( \'template_redirect\', \'my_redirect_to_login\' );
function my_redirect_to_login() {
// Get an array of user pages with wpmem_user_pages()
// @see: http://rocketgeek.com/plugins/wp-members/docs/api-functions/wpmem_user_pages/
$pages = wpmem_user_pages();
// If the user is not logged in, and the current page is not in the user pages array.
// @see: http://rocketgeek.com/plugins/wp-members/docs/api-functions/wpmem_current_url/
if ( ! is_user_logged_in() && ! in_array( wpmem_current_url(), $pages ) ) {
// Redirect the user to the login page.
wpmem_redirect_to_login();
}
return;
}