Функция get_post_mime_type()
в WordPress используется для получения MIME-типа вложений, таких как изображения, видео или документы, по их ID. MIME-тип — это тип контента файла, который помогает определить, к какому формату он относится (например, image/jpeg
, video/mp4
и т.д.).
get_post_mime_type( int|WP_Post $post = null ): string|false
Описание
Эта функция возвращает MIME-тип вложения (или любой другой записи) на основе его ID. В основном она используется для работы с вложениями, такими как изображения, видео и документы, но может применяться к любому посту.
Если запись не является вложением или MIME-тип не найден, функция вернет false
.
Параметры
- $post (int|WP_Post, необязательный): ID записи или объект
WP_Post
. По умолчанию используется глобальная переменная$post
.
Возвращаемое значение
- Возвращает строку с MIME-типом записи при успехе или
false
, если запись не является вложением или MIME-тип не найден.
Пример 1: Получение MIME-типа изображения
Предположим, что у нас есть изображение с ID 354. Мы можем получить его MIME-тип следующим образом:
$attachment_id = 354;
$mime_type = get_post_mime_type($attachment_id);
echo 'MIME-тип файла: ' . $mime_type;
// Выведет что-то вроде: MIME-тип файла: image/jpeg
Этот код возвращает MIME-тип для изображения, прикрепленного к записи.
Пример 2: Получение MIME-типа в цикле WordPress
В этом примере мы получаем MIME-тип в стандартном цикле WordPress:
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$mime_type = get_post_mime_type();
echo 'MIME-тип текущего поста: ' . $mime_type . '<br>';
endwhile;
endif;
Здесь функция get_post_mime_type()
будет вызываться для каждого поста в цикле, и выводить MIME-тип вложений.
Пример 3: Иконки для вложений на основе MIME-типа
Этот пример демонстрирует, как можно выводить иконки для файлов на основе их MIME-типа:
function get_icon_for_attachment($post_id) {
$base = get_template_directory_uri() . "/images/icons/";
$mime_type = get_post_mime_type($post_id);
switch ($mime_type) {
case 'image/jpeg':
case 'image/png':
case 'image/gif':
return $base . "image.png";
case 'video/mpeg':
case 'video/mp4':
case 'video/quicktime':
return $base . "video.png";
case 'text/csv':
case 'text/plain':
case 'text/xml':
return $base . "text.png";
default:
return $base . "file.png";
}
}
// Пример вызова функции
$attachment_id = 405; // ID вложения
echo '<img src="' . get_icon_for_attachment($attachment_id) . '" />';
Этот код проверяет MIME-тип вложения и выводит соответствующую иконку, основываясь на его типе (изображение, видео или текстовый файл).
Пример 4: Использование MIME-типа для фильтрации файлов
Вы можете использовать get_post_mime_type()
, чтобы фильтровать вложения по типу файла. Например, для получения всех видеофайлов:
$attachments = get_posts(array(
'post_type' => 'attachment',
'post_mime_type' => 'video',
'numberposts' => -1
));
foreach ($attachments as $attachment) {
echo 'Видео файл: ' . get_the_title($attachment->ID) . ' (' . get_post_mime_type($attachment->ID) . ')<br>';
}
Этот код получает все видеофайлы, которые прикреплены к записям на сайте, и выводит их названия вместе с MIME-типами.
Заключение
Функция get_post_mime_type()
в WordPress — это удобный инструмент для получения информации о типе файлов, прикрепленных к записям. Она особенно полезна для работы с медиафайлами, позволяя фильтровать и обрабатывать их в зависимости от их формата.