显示特定wordpress角色的特定媒体

时间:2012-08-06 18:55:46

标签: wordpress roles capability

我正在寻找有关如何向特定用户展示特定媒体的想法。

我为该角色创建了一个新角色和功能,我希望将特定媒体文件附加到该角色。这样新角色中的人员只能查看已分配给它的媒体。

最后我创建的是一个人们将登录以便下载文档的页面。我希望能够动态地提取这些文档,但如果我无法弄清楚我要求做什么,我只需要将文档硬编码到页面上。

1 个答案:

答案 0 :(得分:0)

嗯......至于只向某些用户展示某些媒体......

我们可以查看他们在哪里查看他们的媒体,如果您只是在谈论WP-Admin界面中的默认媒体库,那么我们可以检查URL以查看他们是否在媒体库页面上

我们(很可能)将此代码放在我们主题的functions.php文件中,或放在我们的插件中,与您的设计相对应。

//we need access to the $wp_query;
global $wp_query;

//now we build our function, we need to pass $wp_query into it
function manage_user_media($wp_query){

  //we check the location of the window
  if(strpos($_SERVER['REQUEST_URI'], '/wp-admin/upload.php') !== false ||
      strops($_SERVER['REQUEST_URI'], '/wp-admin/media-upload.php') !== false):

      //check if the logged in user has a capability of say...a level 5 user
      if(!current_user_can('level_5')):

          //this user does not have the capabilities of a level 5 user.
          //hijack the 'author' query var, so we can set it to the ID of our user
          $wp_query->set('author', get_current_user_id());

      endif;    

  endif;

}

如果Wordpress User Levels are confusing to you, have a look at the Codex for comparison

这意味着,超过5级用户的任何人都可以看到 [所有] 媒体元素,其中任何低于5级用户的人都只能查看只有 [他或她] 媒体元素。