为每个用户单独创建媒体库

时间:2012-11-12 作者:Anthony

我正在为一个客户创建一个主题,他们的一个请求是允许用户上传自己使用的图像,但也可以选择共享图像。

以下是一些注意事项:

每个用户都可以将自己的图像上载到自己的媒体库中首先,这是否可行,是否可以为图像创建“标记”分类法?

谢谢你的帮助。

3 个回复
最合适的回答,由SO网友:kaiser 整理而成

内置功能

媒体库对即将发布的版本进行了重大更新。你可以see the changes in the slides by Daryl Koopersmith here. 你可以read the announcement and discussion on "Make".

您对“标签/类别”的请求已经内置在3.5中。

注意,主题和插件之间的区别很简单:显示与功能。因此,我建议不要将此类功能构建到主题中,而是将其作为插件分开。这样做的好处是:您/您的客户不会在更新或主题更改时失去此功能。这只会让你的生活变得更轻松。想象一下,你有另一个客户要求这样做。然后,你只需上传你已经存在的插件,而不是将其从你的主题中剥离出来,并将其移动到下一个主题中。

SO网友:Tom J Nowell

正如Kaiser所提到的,在WordPress的下一个版本中,媒体库使用了一个更靠近帖子/页面界面的UI。

由于媒体库基本上是一个称为“附件”的CPT,因此您可以对“附件”帖子类型进行评论、发布元数据,并为其分配分类。

3.4.2支持所有这些功能,但不会显示媒体类型的分类法UI。3.5确实如此。

标记完成了。

用于向管理员显示所有内容,并为个人用户提供自己的媒体库?如果用户不是管理员或更高级别的角色,并且仅当查询正在查找“attachment”类型的帖子时,您需要使用仅在后端运行的pre\\u get\\u posts筛选器根据“author”筛选出这些帖子。

SO网友:brasofilo

This Q&A 显示如何限制用户角色能够在仪表板中看到的帖子。缺少附件部分,即:

add_filter( \'pre_get_posts\', \'wpse_72278_current_author_media\' );
add_filter( \'views_upload\', \'wpse_72278_custom_view_count\', 10, 1 );

function wpse_72278_current_author_media( $query ) 
{
    global $pagenow, $user_ID;

    if( \'upload.php\' !== $pagenow )
        return $query;

    if ( $query->is_admin && current_user_can( \'editor\' ) ) 
        $query->set( \'author\', $user_ID );      

    return $query;
}

function wpse_72278_custom_view_count( $views ) 
{
    global $user_ID, $wpdb;

    if ( !current_user_can(\'editor\') ) 
        return $views;

    $total = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = \'$user_ID\'
        AND post_type = \'attachment\' " );
    $image = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = \'$user_ID\' 
        AND post_mime_type LIKE \'image/%\' " );
    $video = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = \'$user_ID\' 
        AND post_mime_type LIKE \'video/%\' " );
    $detached = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts 
        WHERE post_author = \'$user_ID\' 
        AND post_type = \'attachment\' AND post_parent = \'0\' " );

    $views[\'all\'] = preg_replace( \'/\\(.+\\)/U\', \'(\'.$total.\')\', $views[\'all\'] ); 
    $views[\'image\'] = preg_replace( \'/\\(.+\\)/U\', \'(\'.$image.\')\', $views[\'image\'] ); 
    $views[\'video\'] = preg_replace( \'/\\(.+\\)/U\', \'(\'.$video.\')\', $views[\'video\'] ); 
    $views[\'detached\'] = preg_replace( \'/\\(.+\\)/U\', \'(\'.$detached.\')\', $views[\'detached\'] ); 

    return $views;
}
This other 处理一个作者拥有的帖子和另一个作者上传的帖子的问题。

如果你还没有跳到3.5,this last one 处理附件的自定义字段。

结束

相关推荐

Hierarchical taxonomy UI

我不喜欢Wordpress管理中分类法的显示方式,我想知道是否有人知道最好的方法来连接和更改它。目前,如果我在我的帖子中选择一些术语,这些选定的术语会出现在列表的顶部,层次结构会被打破,这会让用户在视觉上感到困惑。请看这些图片了解我在说什么我想准确地显示分类法最初的显示方式,只勾选正确的术语。有没有一种不用直接编辑Wordpress核心的方法,我看不到任何可以使用的挂钩。感谢您的帮助!海伦