WordPress自定义角色的用户只能看到自己的文章

作者为WordPress开发了限制Bloger角色用户仅能查看和编辑自己文章的功能。通过自定义函数判断当前用户角色及页面,并在文章列表查询中设置作者为当前用户ID,确保数据隔离。代码已通过parse_query钩子实现。

WordPress基础教程
阅读时间: 7 分钟
最后更新时间:2025年11月13日

导语:作者开发一个客户主题的时候,客户希望创建一个Blog角色,此角色的用户只能撰写查看自己的文章,其他用户、其他同类角色的用户的文章都不可以看见。

实现代码

在执行下面的代码之前,作者已经用register_post_type注册了自定义的blog类型的文章,也使用add_role添加一个叫做bloger的角色。

下面的代码,先判断了是不是在文章列表页面:/wp-admin/edit.php。

然后,判断是不是bloger角色。

如果条件都满足,那么为查询添加一个新的条件:作者字段等于当前用户的ID。

/**
 * 如果bloger角色,只能看到自己的文章。
 * 
 * @param array $wp_query  
 * 
 * @return void
 */
function Yct_Parse_Query_useronly( $wp_query ) 
{
    if (strpos($_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php') !== false ) {
        global $current_user;  
        if (in_array('bloger', $current_user->roles)) {
            $wp_query->set('author', $current_user->id);
        }
    }
}   
add_filter('parse_query', 'Yct_Parse_Query_useronly');

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

曾凤祥

曾凤祥

技术负责人
小兽wordpress凭借多年的wordpress企业主题制作经验,坚持以“为用户而生的wordpress主题”为宗旨,累计为10万多家客户提供品质wordpress建站服务,得到了客户的一致好评。我们一直用心对待每一个客户,我们坚信:“善待客户,将会成为终身客户”。小兽wordpress能坚持多年,是因为我们一直诚信。

相关文章

如何让线上业务更上一层楼

还没有WordPress网站

还没有WordPress网站

不管你从事什么行业,WordPress都会为你提供一个专业的主题模板。在WordPress市场上有成千上万的免费主题,适合很多中小企业。

查看所有模板
已经有WordPress网站

已经有WordPress网站

小兽WordPress诚邀你一起学习WordPress,愿与各方携手升级改善您的WordPress网站,一起交流网站加速,网站优化等问题。

马上交个朋友
微信联系
chat 扫码联系
模板建站
挑选模板
网站定制
免费诊断
咨询热线
咨询热线

189-0733-7671

返回顶部