如何在媒体管理器中隐藏其他用户的媒体上传

时间:2014-01-08 12:49:32

标签: wordpress

我正在使用wordpress multisite并且想隐藏其他人上传的medea。就像该网站的X用户已经在wordpress中上传了任何媒体一样,Y用户不应该从登录中看到或访问它。请帮忙

3 个答案:

答案 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)

将其创建为插件:

  1. 创建新文件
  2. 从此处添加代码:http://pastebin.com/rfMLM0BU
  3. 将其另存为my-authored-content.php
  4. 将其上传到您的插件目录。
  5. 希望这对你有所帮助! : - )

答案 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' );

我将此用于上传的个人资料的上传个人资料照片