Функция post_type_supports()
в WordPress используется для проверки, поддерживает ли конкретный тип записи определённую функциональность. Это полезно для проверки, включена ли поддержка функций, таких как редактор, миниатюры, комментарии и другие, для заданного типа записи.
post_type_supports( string $post_type, string $feature ): bool
Аргументы:
$post_type
(string) — Тип записи, для которого проверяется поддержка.$feature
(string) — Название функциональности, поддержку которой нужно проверить. Возможные значения:'title'
— Заголовок записи.'editor'
— Редактор контента (основное поле для текста).'author'
— Авторы записей.'thumbnail'
— Миниатюры (изображения, привязанные к записи). Текущая тема также должна поддерживать Post Thumbnails.'excerpt'
— Аннотации (краткое описание записи).'trackbacks'
— Поддержка трекбэков.'custom-fields'
— Пользовательские поля (мета-данные).'comments'
— Комментарии (отображение количества комментариев на экране редактирования).'revisions'
— Хранение ревизий записей.'page-attributes'
— Атрибуты страниц (шаблоны и порядок в меню). Тип записи должен быть иерархическим (hierarchical
должен бытьtrue
).'post-formats'
— Форматы записей (например, видео, изображение и т.д.).
Тип возвращаемого значения: bool
Пример 1: Проверка поддержки миниатюр для типа записи product
.
$post_type = 'product'; // Ваш пользовательский тип записи
$feature = 'thumbnail'; // Проверяем поддержку миниатюр
if (post_type_supports($post_type, $feature)) {
echo 'Тип записи ' . $post_type . ' поддерживает миниатюры.';
} else {
echo 'Тип записи ' . $post_type . ' не поддерживает миниатюры.';
}
Пример 2: Проверка поддержки комментариев для стандартного типа записи post
.
$post_type = 'post'; // Стандартный тип записи
$feature = 'comments'; // Проверяем поддержку комментариев
if (post_type_supports($post_type, $feature)) {
echo 'Тип записи ' . $post_type . ' поддерживает комментарии.';
} else {
echo 'Тип записи ' . $post_type . ' не поддерживает комментарии.';
}
Как это работает
Функция post_type_supports()
проверяет, включена ли поддержка указанной функции для конкретного типа записи, основываясь на параметрах, заданных при регистрации типа записи с помощью функции register_post_type()
.
Пример регистрации типа записи с поддержкой различных функций:
register_post_type('portfolio', array(
'supports' => array('title', 'editor', 'thumbnail', 'comments', 'revisions', 'page-attributes', 'post-formats'),
'hierarchical' => true, // Должно быть установлено для поддержки 'page-attributes'
));
В этом примере тип записи portfolio
поддерживает заголовок, редактор, миниатюры, комментарии, ревизии, атрибуты страницы и форматы записей.
Заключение
Функция post_type_supports()
предоставляет гибкий способ проверки наличия поддержки различных функций для типов записей в WordPress. Это позволяет адаптировать функционал и интерфейс в зависимости от доступных возможностей, что важно для создания гибких и удобных пользовательских интерфейсов.