如何让WordPress后台文章列表中只显示作者自己发不过的文章呢?有时候我们会给网站添加一些作者,给予他们发布文章的权限,不过当他们点击后台的时候,显示的确实所有的文章列表,其中自然也包括了他们写的文章,并非是只显示他们所写的文章。这样一来,当一个站点的文章多了,用户数量多了之后,如果一个作者查看后台显示的文章是站点所有的文章,那么就会造成两个问题,一个就是查询数据量大,一个就是作者想要找到自己的文章步骤麻烦,那么通过下面的代码就会省事不少。
WordPress让用户后台只显示自己的文章
直接将下面的代码添加到functions.php中即可,代码通过判断当前用户级别来显示文章,管理员可以显示所有文章,其余的都只能看到自己的文章:
- 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篇文章,这是因为,这些文章都不是这个测试用户缩写的,所以在后台无法显示。
然后我们用测试用户发布一篇文章:
这个时候后台显示明明有七篇文章,但是文章列表只显示了一篇刚刚自己发不过的文章:
同时在主页面我们同样可以看到这篇文章的发布,证明整个流程并没有问题,代码方面也是正确的,想必大家都迫不及待的想去测试了吧。