所有 · 2022年2月20日 1

wordpress媒体库如何限制观看条件

某天上线登录wordpress后台,打开媒体库,突然看到几张让人血脉喷张的图片,虽然很刺激,但到时影响到其他作者用户属实不好,于是我就去插件库里尝试找有木有插件能将媒体库默认绑定用户的,结果自然是没有找到的,不然也不会写这篇文章了。那么接下来进入正题

首先你得了解WordPress函数文件Functions.php

Functions.php存在于wordpress主题根目录:wp-content/themes/

更多请参考:WordPress主题开发手册:functions.php | WordPress大学 (wpdaxue.com)

用编辑器打开function.php文件,在<?php 和 ?> 之间添加方法:

/**
* WordPress 媒体库只显示用户自己上传的文件
* https://120.79.19.178:9090
*/
//只能使用自己上传的文件
add_filter( 'ajax_query_attachments_args', 'wpb_show_current_user_attachments' );
function wpb_show_current_user_attachments( $query ) {
$user_id = get_current_user_id();
//if ( $user_id && !current_user_can('activate_plugins') && !current_user_can('edit_others_posts
if ( $user_id>1) {
$query['author'] = $user_id;
}
return $query;
}
//在[媒体库]只显示用户上传的文件
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;
if ( $current_user->id>1) {
$wp_query->set( 'author', $current_user->id );
}
}
}
}
add_filter('parse_query', 'my_media_library' );

其中$user_id以及$current_user->id是用户的id,意味着id为1的用户不受影响(我的wordpress超管id为1,你们可以看着改)

我的技能
wordpressFUNCTION初级 100%
感谢您的阅读,您的支持便是我不断前进的动力,希望能多推荐朋友们在我博客注册
Sakta_wdi的博客
1742804029