我正在使用wordpress multisite并且想隐藏其他人上传的medea。就像该网站的X用户已经在wordpress中上传了任何媒体一样,Y用户不应该从登录中看到或访问它。请帮忙
答案 0 :(得分:6)
你可以尝试这样的事情。
/**
* Allow access to own content only
*/
function my_authored_content($query) {
//get current user info to see if they are allowed to access ANY posts and pages
$current_user = wp_get_current_user();
// set current user to $is_user
$is_user = $current_user->user_login;
//if is admin or 'is_user' does not equal #username
if (!current_user_can('manage_options')){
//if in the admin panel
if($query->is_admin) {
global $user_ID;
$query->set('author', $user_ID);
}
return $query;
}
return $query;
}
add_filter('pre_get_posts', 'my_authored_content');
这只会让管理员和作者看到内容。
您可以将其添加到主要功能文件中,也可以将其转换为插件。
答案 1 :(得分:2)
将其创建为插件:
希望这对你有所帮助! : - )
答案 2 :(得分:0)
对我来说,这是:
function mymo_parse_query_useronly( $wp_query ) {
if(isset($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] == 'attachment'){
if ( !current_user_can( 'level_5' ) ) {
$wp_query->set( 'author', get_current_user_id() );
}
}
}
add_filter('parse_query', 'mymo_parse_query_useronly' );
我将此用于上传的个人资料的上传个人资料照片