Бывают такие ситуации, когда нужно сортировать фотографии по папкам, чтобы можно было отделять одни фотографии от других. Для таких случаев очень удобно использовать готовые бесплатные плагины на подобие Folders.
Суть плагина такова, что он создаёт таксономию для типа постов attachments и связывает фотографии (которые также являются постами) с этой категорией. В принципе, ничто не мешает нам также самостоятельно создать свою собственную категорию для фотографий, а не использовать готовые решения, но плагин позволяет сэкономить время и имеет приятный и удобный интерфейс.
Для того, чтобы присвоить посту категорию – мы будем использовать функцию wp_set_object_terms(). На всякий случай добавим проверку на существование таксономии с помощью функции taxonomy_exists();
if( taxonomy_exists( 'media_folder' ) ){
wp_set_object_terms(
$attachment_id, //post ID
76, //term_id from db
"media_folder", //tax name
false
);
}Функция wp_set_object_terms() принимает следующие аргументы:
wp_set_object_terms( int $object_id, string|int|array $terms, string $taxonomy, bool $append = false );
- $object_id (обязательное) – ID поста (в нашем случае фотографии, а точнее поста с типом записи – attachments)
- $terms (обязательное) – информация о таксономии – ярлык или ID таксономии, либо массив ярлыков или ID таксономии
- $taxonomy (обязательное) – название таксономии.
- $append (необязательный) – логическое значение (true/false). Если true – добавляет к существующим таксономиям ещё таксономию/ии, false – заменяет все существующие таксономии на новую/ые.
Значит у нас есть ID поста (фотографии). Как же нам получить ID таксономии и её название. Я смог это сделать только заглянув в базу данных.
Чтобы узнать название таксономии и её ID – заглянем в таблицу wp_term_taxonomy

Методом несложной дедукции я обнаружил, что таксономию с названием media_folder я не создавал, да и базовой для WordPress она не является. Поэтому берём эту таксономию – тут есть ID (76) и название (media_folder).