WordPress 媒体库只显示用户自己上传的文件

最美丽的风景皆因你的存在而彰显不同。如果你不出去走走,你会以为这就是全世界。

《WordPress 限制不同用户角色可上传的文件类型及大小》已经详细介绍了用户上传的问题,今天分享下在 WordPress 媒体库只显示用户自己上传的文件 的方法。在当前主题的 functions.php 文件添加下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
 * WordPress 媒体库只显示用户自己上传的文件
 * https://www.wpdaxue.com/view-user-own-media-only.html
 */
//在文章编辑页面的[添加媒体]只显示用户自己上传的文件
function my_upload_media( $wp_query_obj ) {
	global $current_user, $pagenow;
	if( !is_a( $current_user, 'WP_User') )
		return;
	if( 'admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments' )
		return;
	if( !current_user_can( 'manage_options' ) && !current_user_can('manage_media_library') )
		$wp_query_obj->set('author', $current_user->ID );
	return;
}
add_action('pre_get_posts','my_upload_media');

//在[媒体库]只显示用户上传的文件
function my_media_library( $wp_query ) {
    if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php' ) !== false ) {
        if ( !current_user_can( 'manage_options' ) && !current_user_can( 'manage_media_library' ) ) {
            global $current_user;
            $wp_query->set( 'author', $current_user->id );
        }
    }
}
add_filter('parse_query', 'my_media_library' );

/** * WordPress 媒体库只显示用户自己上传的文件 * https://www.wpdaxue.com/view-user-own-media-only.html */ //在文章编辑页面的[添加媒体]只显示用户自己上传的文件 function my_upload_media( $wp_query_obj ) { global $current_user, $pagenow; if( !is_a( $current_user, 'WP_User') ) return; if( 'admin-ajax.php' != $pagenow || $_REQUEST['action'] != 'query-attachments' ) return; if( !current_user_can( 'manage_options' ) && !current_user_can('manage_media_library') ) $wp_query_obj->set('author', $current_user->ID ); return; } add_action('pre_get_posts','my_upload_media'); //在[媒体库]只显示用户上传的文件 function my_media_library( $wp_query ) { if ( strpos( $_SERVER[ 'REQUEST_URI' ], '/wp-admin/upload.php' ) !== false ) { if ( !current_user_can( 'manage_options' ) && !current_user_can( 'manage_media_library' ) ) { global $current_user; $wp_query->set( 'author', $current_user->id ); } } } add_filter('parse_query', 'my_media_library' );

最终效果:非管理员用户 在文章编辑页面的[添加媒体]窗口(下图1) 和 多媒体 管理界面(下图2)只显示自己上传的文件(还不能修正媒体数量显示)

如果谁知道如何修正多媒体管理界面的媒体数量显示,希望告知。

如果大家不想折腾代码的,也可以试试 View Own Posts Media Only 插件。

到此这篇关于WordPress 媒体库只显示用户自己上传的文件就介绍到这了。这个年代说No比说Yes更重要。更多相关WordPress 媒体库只显示用户自己上传的文件内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!

您可能有感兴趣的文章
WordPress只显示一个主题和不显示模板文件的如何解决方法

WordPress 后台只显示当前登录用户的文章、页面和媒体

WordPress “添加媒体”只显示上传到本文章/页面的文件

WordPress后台只显示与当前用户的文章相关联的评论

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