我是wordpress的新手。我正在上运行wordpress安装程序http://localhost/wordpress/. 我现在面临两个问题:
- 只有登录的用户才能访问该网站。因此,我试图使用以下代码将来宾从主页重定向到登录页,但代码不知何故不起作用:
路径:
wp-content/themes/twentysixteen/header.php <?php
if(get_permalink() != wp_login_url() && !is_user_logged_in()){
wp_redirect( wp_login_url() ); exit;
}
?>
由于上面的代码不起作用,我尝试通过单击
login 按钮以下是工作代码:
<?php
if(get_permalink() != wp_login_url() && !is_user_logged_in()){
// wp_redirect( wp_login_url() ); exit;
?>
<a href="<?php echo wp_login_url( get_permalink() ); ?>" title="Login">Login</a>
<?php
}
?>
根据以上代码,当来宾单击登录时,他/她将重定向到登录页面,当用户登录时,页面将重定向到wordpress admin,即
wp-admin 而不是主页,即
http://localhost/wordpress.
我想做的是:如果用户未登录,请将来宾从主页重定向到登录页然后在用户登录时将用户从登录页重定向到主页,而不是wp admin
SO网友:Andy Macaulay-Brook
这在你的标题中。php或在任何模板中的get\\u header()调用之前,都会将未登录且试图访问站点任何页面的用户重定向到登录页面:
if( !is_user_logged_in() ) {
wp_redirect( wp_login_url() );
exit;
}
这将在登录后将所有用户重定向到主页:
function tbdn_login_redirect( $redirect_url ) {
return home_url();
}
add_filter( \'login_redirect\', \'tbdn_login_redirect\' );
请注意,如果登录用户知道URL或其登录启用了管理栏,则不会限制其访问管理屏幕。
SO网友:Siddika
如果您的“登录”页面是“页面模板”,则可以使用template_redirect\' 钩您的functions.php 将为您提供这些:
如果用户未登录,请将来宾从主页重定向到登录页面并在用户登录时将用户从登录页重定向到主页在函数文件中添加以下内容:
add_action( \'template_redirect\', \'ft_redirect_user\' );
function ft_redirect_user() {
//Redirect the guest from home page to login page, if the user isn\'t logged in. And redirect the user from login page to home page when user logs in.
if ( ! is_user_logged_in() && is_front_page() ) {
$return_url = esc_url( home_url( \'/login-page-slug/\' ) ); //change the \'login-page-slug\' to your actual page slug of your login page.
wp_redirect( $return_url );
exit;
} elseif ( is_user_logged_in() && is_page( \'login-page-slug\' ) ) { //change the \'login-page-slug\' to your actual page slug of your login page.
$return_url = esc_url( home_url(\'/\') );
wp_redirect( $return_url );
exit;
}
}