Php 避免重定向到WordPress中的仪表板

Php 避免重定向到WordPress中的仪表板,php,wordpress,redirect,login,dashboard,Php,Wordpress,Redirect,Login,Dashboard,我知道我可以在WordPress中使用以下代码,以确保已登录我的网站的用户在单击我的主页上的登录按钮时不会重新定向到仪表板: <?php if(is_user_logged_in()){ // redirect to desired page } ?> 如果您能给我一些建议,告诉我应该把代码放在哪里,以及应该用我希望向登录用户发送的页面的URL覆盖代码的哪一部分,我将不胜感激。我应该补充一点,所需的页面与我在登录时引导用户访问的页面相同 非常感谢您的帮

我知道我可以在WordPress中使用以下代码,以确保已登录我的网站的用户在单击我的主页上的登录按钮时不会重新定向到仪表板:

<?php
   if(is_user_logged_in()){
      // redirect to desired page
   }
?> 

如果您能给我一些建议,告诉我应该把代码放在哪里,以及应该用我希望向登录用户发送的页面的URL覆盖代码的哪一部分,我将不胜感激。我应该补充一点,所需的页面与我在登录时引导用户访问的页面相同


非常感谢您的帮助。

我不理解您的问题,您试图阻止用户可视化WordPress的仪表盘。您可以阻止非管理员用户转到admin init钩子上的仪表板

add_action( "admin_init", "prevent_dashboard_non_admin" );
function prevent_dashboard_non_admin() {
  if ( ! current_user_can('manage_options') && ! defined( 'DOING_AJAX' ) ) {
    wp_redirect( home_url() ); // You can change that home_url() to any page URL you are tring to redirect
  }
}
您可以将此代码放入functions.php

注意:此代码尚未测试,请留下评论,如果您有任何问题,我将创建更新

更新

function my_is_loggin_page() {
    if ( $GLOBALS['pagenow'] === 'wp-login.php' ) {
        if( is_user_logged_in() ) {
            wp_redirect( "yourpage" );
        }
    }
}

add_action( "init", "my_is_loggin_page", 12 );

只需看看这里,了解更多观点:

如果您想让您的用户登录,例如登录后登录到此页面example.com/some page/,您可以使用以下代码:

function mysite_login_redirect($redirect_to, $request, $user) {
    if (!isset($_GET['loggedout'])) {    
    return (isset($user->roles) && is_array($user->roles) && in_array('administrator', $user->roles)) ? admin_url() : site_url('/some-page/');   
}    
}

add_filter('login_redirect', 'mysite_login_redirect', 10, 3);
执行此操作的算法很简单:

如果用户是管理员,请继续
admin\u url()
否则,重定向到
站点的url('/some page/')
login\u重定向
过滤器将向函数传递三个参数:

  • $redirect\u至

  • $request

  • $user

我们主要关注第三个,因为我们可以查看它的roles属性来确定它是否包含administrator值

现在,我们将非管理员用户重定向到特定页面,而不是仪表板

site\u url('/some page/')
将转换为example.com/some page/


希望它能帮助你:)

谢谢你的建议,亚历杭德罗。但是,登录后不应将任何类别的用户定向到仪表板。目前,用户在登录时会通过我的主页上链接到登录页面的登录按钮重定向到我选择的页面。如果他们已经登录并希望打开主页的新选项卡,单击主页上的登录按钮会使他们绕过登录页面直接进入仪表板。相反,如果他们是第一次登录,他们应该直接进入他们将被引导到的页面;我想这就是你想要做的。我在登录时将管理员或非管理员用户重定向到我预期的登录页上没有困难。当登录的个人通过额外的浏览器选项卡打开站点的第二个副本时,就会出现困难。如果他们已经通过第一个浏览器选项卡登录,当他们使用第二个选项卡(他们需要这样做)单击登录按钮时,他们会自动重定向到仪表板。我希望他们被重定向到上面的登录页*这适用于管理员和非管理员用户。目前提供的解决方案是针对不同类型的查询。