一号优惠经验分享网
51福利网的各种薅羊毛福利经验笔记

 WordPress后台文章列表中只显示作者自己的文章

如何让WordPress后台文章列表中只显示作者自己发不过的文章呢?有时候我们会给网站添加一些作者,给予他们发布文章的权限,不过当他们点击后台的时候,显示的确实所有的文章列表,其中自然也包括了他们写的文章,并非是只显示他们所写的文章。这样一来,当一个站点的文章多了,用户数量多了之后,如果一个作者查看后台显示的文章是站点所有的文章,那么就会造成两个问题,一个就是查询数据量大,一个就是作者想要找到自己的文章步骤麻烦,那么通过下面的代码就会省事不少。

WordPress让用户后台只显示自己的文章

直接将下面的代码添加到functions.php中即可,代码通过判断当前用户级别来显示文章,管理员可以显示所有文章,其余的都只能看到自己的文章:

51福利网
function mypo_parse_query_useronly( $wp_query ) {  
if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/edit.php' ) !== false ) {  
if ( !current_user_can( 'level_10' ) ) {  
global $current_user;  
$wp_query->set( 'author', $current_user->id );  
}  
}  
}  
add_filter('parse_query', 'mypo_parse_query_useronly' );  

相关的效果如下:

这里是一个测试用户的后台,里面没有显示文章,但是右上角却显示了明明有6篇文章,这是因为,这些文章都不是这个测试用户缩写的,所以在后台无法显示。

然后我们用测试用户发布一篇文章

这个时候后台显示明明有七篇文章,但是文章列表只显示了一篇刚刚自己发不过的文章:

同时在主页面我们同样可以看到这篇文章的发布,证明整个流程并没有问题,代码方面也是正确的,想必大家都迫不及待的想去测试了吧。

更多教程2:

对于多作者博客,默认情况下,在WordPress后台的评论列表是可以看到其他作者文章下的评论的,如果要限制用户只能看到自己文章下的评论,将下面的代码添加到主题根目录下的 functions.php 即可:

/**
 * 让作者在 WordPress 后台只能看到自己文章下的评论
 
 */
function wpdx_get_comment_list_by_user($clauses) {
	if (is_admin()) {
		global $user_ID, $wpdb;
		$clauses['join'] = ", wp_posts";
		$clauses['where'] .= " AND wp_posts.post_author = ".$user_ID." AND wp_comments.comment_post_ID = wp_posts.ID";
	};
	return $clauses;
};
if(!current_user_can('edit_others_posts')) {
	add_filter('comments_clauses', 'wpdx_get_comment_list_by_user');
}

注:你可能需要修改 第 8-9 行中的几个 wp_ 为你自己的数据库前缀。第 13 行添加了判断,只有“编辑”角色以下的用户才生效,也就是说,属于编辑和管理员这两个角色的用户是不限制的。

一号优惠 · 51福利网薅羊毛福利具有时效性,如已失效,请留言
文章名称:《 WordPress后台文章列表中只显示作者自己的文章》-一号优惠 · 51福利网
免责申明:本站所有活动信息均来自网络,如有失效、违规、不实或侵权,请联系我们删除。谢谢

评论 抢沙发

一号优惠经验分享网最新最全薅羊毛,现金红包线报网

一号优惠经验分享网提供每日最新内部优惠,薅羊毛活动,现金红包领取,免费福利和网赚福利手机赚钱线报,打造中国最受欢迎的网赚信息发布平台!51福利网

51联盟线报群赚钱·合作·帮助

登录

找回密码

注册