web-dev-qa-db-ja.com

メディアライブラリを特定のフォルダに制限する

私はメディアライブラリを使用してユーザーが特定のディレクトリにファイルをアップロードできるようにするプラグインを作成しました - upload_dirフィルターを使用します。

メディアライブラリを自分のカスタムフォルダに含まれるファイルのみを表示するように制限する方法(フィルタ)があるかどうかを知りたいですか。

可能であれば、プラグインによってインスタンス化されたメディアライブラリとやり取りするときに、ユーザーにカスタムフォルダーにアップロードされたファイルのみを選択できるようにします。

5

私には有効な解決策は、メディアライブラリが表示されているときに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;
}
2