在上一篇文章《WordPress 主题前端投稿允许订阅者上传图片》中我们为订阅者角色添加了前台投稿可以上传图片的功能,但是这就存在了一个安全隐患,就是投稿者点击添加媒体按钮后,可以看到网站所有的媒体文件,并且可以对媒体文件做任何操作,为了避免用户删除网站的媒体文件,我们需要对用户上传媒体文件做相关限制,让用户上传媒体文件的时候只能看到自己上传的媒体文件,这其实很简单,只需要将下面的代码放到您的主题 functions.php 文件中就行了。
- //在[媒体库]只显示用户上传的文件
- 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' );