WordPressのメディアライブラリは階層を持てないので、疑似的に階層を持たせて便利にするプラグインがリリースされています。
その中でもインストール数が多く、人気を集めているのがFileBirdです。

FileBird – WordPress Media Library Folders & File Manager
Organize thousands of WordPress media files in folders / categories with ease.
FileBirdは多機能なのですが、公式サイトを見てもバックエンドから利用できるAPIがほとんど公開されていません。

Functions | FileBird
FileBirdのAPI
Get Folder Detail
<?php
use FileBird\Model\Folder as FolderModel;
$folder_id = 1;
$folder = FolderModel::findById( $folder_id, 'id, name, parent' );
Get Folders
<?php
use FileBird\Classes\Tree;
$folders = Tree::getFolders( null );
Create New Folder
<?php
use FileBird\Model\Folder as FolderModel;
$name = 'Cat';
$parent_id = 0;
FolderModel::newOrGet( $name, $parent_id );
Get Attachment Ids by Folder Id
<?php
use FileBird\Classes\Helpers as Helpers;
$folder_id = 1;
$ids = Helpers::getAttachmentIdsByFolderId( $folder_id );
Add attachment(s) to folder
<?php
use FileBird\Model\Folder as FolderModel;
$post_ids = [ 1, 2, 3 ];
$folder = 1;
FolderModel::setFoldersForPosts( $post_ids, $folder );
フォルダ周りのAPIは、フォルダIDがわからないと使えないのですが、フォルダ名からIDを調べるAPIは公開されていません。
公開されているAPI関数以外でも使える
実は、FileBirdのAPIはクラス内の関数を直接呼び出しているだけなので、FileBirdのソースコードを見ると他にも使えそうな関数が沢山あることに気が付きました。
FileBirdのフォルダ名からフォルダIDを調べるAPIがわかったのでこの記事でまとめておきます。
use FileBird\Model\Folder as FolderModel;
use FileBird\Classes\Helpers as Helpers;
//フォルダ名からフォルダの詳細を取得
$parent=0;
$detail=FolderModel::detail( $name, $parent ) ;
//フォルダID
$folder_id = $detail->id;
//フォルダIDに含まれる画像ID
$image_ids = Helpers::getAttachmentIdsByFolderId( $folder_id );