将媒体库限制为给定文件夹

时间:2012-06-25 作者:Michael Robinson

我制作了一个插件,它使用媒体库允许用户将文件上载到特定目录,使用upload_dir 滤器

我想知道是否有一种方法(即过滤器)可以用来限制媒体库仅显示自定义文件夹中包含的文件?

如果可能,我希望用户在与我的插件实例化的媒体库交互时,只能选择已上载到自定义文件夹的文件。

1 个回复
最合适的回答,由SO网友:Michael Robinson 整理而成

对我来说,一个有效的解决方案是在显示媒体库时向Wordpress查询中添加一个子句。

在浏览Wordpress数据库时,我注意到wp_posts.post_type = \'attachment\' 存储在wp_posts.guid

add_filter(\'posts_where\', \'limitMediaLibraryItems_56456\', 10, 2 );
function limitMediaLibraryItems_56456($where, &$wp_query) {
    global $pagenow, $wpdb;

    // Do not modify $where for non-media library requests
    if ($pagenow !== \'media-upload.php\') {
        return $where;
    }

    $where .= " AND {$wpdb->posts}.guid LIKE \'%my-path-segment%\'";

    return $where;
}

结束

相关推荐

Add_Filters()和Apply_Filter()有什么作用?

我有点困惑,为什么这不起作用-尽管必须说,我不太确定是什么apply_filters() 和add_filter 正在做,所以任何一般性的提示都会很好!我想要一个查询,在一个帖子页面上显示之前的五篇帖子。我正在发送当前帖子的日期,并希望应用一个过滤器,过滤出早于此的帖子。function sw_filter_posts_before( $where = \'\', $date) { $where .= \" AND post_date < \'\" . $date . \"