Описание get_attached_media
— Filter
Хук get_attached_media позволяет изменить массив прикрепленных медиафайлов к посту. Он срабатывает при получении медиафайлов, связанных с конкретным постом, и позволяет изменять их параметры перед выводом на экран
Примеры использования
Пример удаления определённых медиафайлов из массива прикрепленных медиафайлов:
add_filter('get_attached_media', function($media, $post_id, $context) {
foreach ($media as $key => $attachment) {
if ($attachment->post_title === 'Удаляемое изображение') {
unset($media[$key]);
}
}
return $media;
}, 10, 3);
В этом примере удаляем медиафайл с заголовком ‘Удаляемое изображение’ из массива
Пример добавления дополнительного атрибута к каждому медиафайлу:
add_filter('get_attached_media', function($media, $post_id, $context) {
foreach ($media as &$attachment) {
$attachment->custom_attribute = 'custom_value';
}
return $media;
}, 10, 3);
Здесь мы добавляем пользовательский атрибут ‘custom_attribute’ к каждому медиафайлу
Пример изменения порядка медиафайлов по дате:
add_filter('get_attached_media', function($media, $post_id, $context) {
usort($media, function($a, $b) {
return strtotime($b->post_date) - strtotime($a->post_date);
});
return $media;
}, 10, 3);
В этом примере мы сортируем медиафайлы по дате в порядке убывания
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо изменить или дополнить массив прикрепленных медиафайлов к посту
– Производительность
При изменении массива медиафайлов учитывайте, что выполнение дополнительных операций может повлиять на производительность
– Предупреждения
Будьте внимательны с изменением или удалением медиафайлов, чтобы не нарушить функциональность сайта
Альтернативы
Тип: filter
Этот хук позволяет изменять метаданные отдельных прикрепленных медиафайлов
Используйте его, если необходимо изменить только метаданные конкретного медиафайла, а не массив всех медиафайлов