将用户转发到 Wordpress 中的自定义仪表板

Posted

技术标签:

【中文标题】将用户转发到 Wordpress 中的自定义仪表板【英文标题】:Forward Users to Custom Dashboard in Wordpress 【发布时间】:2013-03-02 01:32:20 【问题描述】:

我正在尝试赋予“订阅者”角色编辑帖子的能力。 虽然这很成功,但我似乎无法在登录时引导用户离开默认的 wordpress wp-admin 页面。

每当我尝试建议的解决方案时,登录(具有 edit_post 权限)的用户都会被重定向到 wp-admin 页面。

当他们登录时,无论我做什么,wordpress 都会将他们转发给 wp-admin,显示 wordpress 后端。 (我不希望用户看到这个)

我之所以要这样做是因为我有一个自定义仪表板供他们使用,位于http://website.com/login/customdashboard/

我希望这是一个函数。

我试过插件没有成功: “彼得的登录重定向”以及“s2member(登录欢迎页面)”

我尝试了以下功能但没有成功:

function soi_login_redirect( $redirect_to, $request, $user  ) 
    return ( is_array( $user->roles ) && in_array( 'administrator', $user->roles ) ) ? admin_url() : site_url();
 // end soi_login_redirect
add_filter( 'login_redirect', 'soi_login_redirect', 10, 3 );

另一个尝试没有成功:

function redirect_login_page()
$page_viewed = basename($_SERVER['REQUEST_URI']);
 $login_page  = site_url();
 if( $page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') 
 wp_redirect($login_page);
 exit();
 

add_action('init','redirect_login_page');

在这方面的任何帮助将不胜感激。

【问题讨论】:

抱歉,这似乎是Chameleon Question一件事是重定向所有/wp-admin URL,并使这个前端删除链接在那种情况下工作是另一件事 谢谢 - 将其重新编辑以保持完整性。 :) 酷,再次投票以保持完整性;) 【参考方案1】:

如果你想重定向所有/wp-admin地址,你可以使用:

add_action( 'admin_init', 'redirect_so_15396771' );

function redirect_so_15396771()
   
    if ( defined( 'DOING_AJAX' ) && DOING_AJAX )  
        return;

    // http://codex.wordpress.org/Roles_and_Capabilities
    if ( !current_user_can('delete_users') ) 
            wp_redirect( site_url( '/login/customdashboard/' ) );
            exit();
    

如果需要根据当前页面进行过滤,可以使用全局$pagenow,其值有index.phpprofile.phptools.php等。

【讨论】:

有趣——delete_users 权限和edit_posts 一样吗?我只是想理解它。 上面的代码似乎做了我想要的,但它似乎阻止了我的用户删除创建的帖子的能力。 - 有什么见解吗? 我允许用户通过与功能相关联的页面中的删除链接删除他们的帖子。 嗯,这看起来像是一个不同的问题。因为,阻止对/wp-admin 的访问是一回事,阻止/启用任何自定义代码(未在原始Q 中发布) 是另一回事。 ::: 回复:delete_users,检查:codex.wordpress.org/Roles_and_Capabilities 我已经用 Ajax 异常更新了答案,它可能会干扰任何自定义代码。

以上是关于将用户转发到 Wordpress 中的自定义仪表板的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 和高级自定义字段管理,仪表板中的自定义列

如何将 is_staff 用户重定向到 Django 中的自定义模板?

在 Wordpress 管理仪表板中执行查询

Wordpress:使用 wp_insert_post() 填充自定义帖子类型字段

将数组存储到 WordPress 数据库

如何在 WordPress 中创建自定义可拖动小部件