# Функция ADD_POST_TYPE_SUPPORT() │ WP 3.0.0
Функция ADD_POST_TYPE_SUPPORT() позволяет зарегистрировать поддержку определённых возможностей для типа записи в WordPress.
## Что такое возможности?
Возможности связаны с функционалом экрана редактирования, таким как редактор или метабокс (это специальные блоки информации на экране редактирования). Примеры возможностей включают:
- title — заголовок
- editor — редактор текста
- comments — комментарии
- revisions — версии записи
- trackbacks — отслеживание ссылок
- author — автор записи
- excerpt — краткое содержание
- page-attributes — атрибуты страниц
- thumbnail — миниатюра
- custom-fields — пользовательские поля
- post-formats — форматы записей
Некоторые возможности, такие как revisions, autosave и comments, определяют, будет ли сохраняться версия записи, будет ли включено автосохранение и будет ли отображаться количество комментариев на экране редактирования.
Также можно передать третий, необязательный параметр для дополнительной информации о поддерживаемой функции.
## Пример использования
Вот как можно использовать функцию add_post_type_support():
```php
add_post_type_support( 'my_post_type', 'comments' );
add_post_type_support( 'my_post_type', array(
'author', 'excerpt',
) );
add_post_type_support( 'my_post_type', 'my_feature', array(
'field' => 'value',
) );
Возвращаемое значение
Функция ничего не возвращает (null).
Как использовать
add_post_type_support( $post_type, $feature, ...$args );
Параметры:
$post_type(string) (обязательный) — тип записи, для которого добавляется функция.$feature(string|array) (обязательный) — функция, которую нужно добавить. Можно передать строку или массив строк....$args(mixed) (обязательный) — дополнительные аргументы для некоторых функций.
Примеры
Пример 1: Добавление комментариев
add_post_type_support( 'my_post_type', 'comments' );
Пример 2: Поддержка краткого содержания для статических страниц
Этот пример показывает, как добавить метабокс для краткого содержания на статические страницы (тип записи — страница). Метабокс для краткого содержания есть в записях, но его нет в статических страницах. Добавьте этот код в файл functions.php:
add_action( 'init', 'my_custom_init' );
function my_custom_init(){
add_post_type_support( 'page', 'excerpt' );
}
Пример 3: Добавление пользовательских полей к уже зарегистрированному типу записи
Предположим, у нас есть тип записи "книга", и мы хотим добавить метабокс для "пользовательских полей", но только для администраторов. Авторы не должны видеть этот метабокс. Это можно сделать с помощью следующего кода:
add_action( 'init', 'wpkama_metaboxes_to_game' );
function wpkama_metaboxes_to_game(){
if( ! current_user_can( 'manage_options' ) ){
return;
}
add_post_type_support( 'book', ['custom-fields'] );
}
Примечания
- Глобальный массив:
$_wp_post_type_features
Журнал изменений
- С версии 3.0.0 — введена функция.
- С версии 5.3.0 — формализован параметр
...$args, добавленный в сигнатуру функции.
Код функции ADD_POST_TYPE_SUPPORT()
function add_post_type_support( $post_type, $feature, ...$args ) {
global $_wp_post_type_features;
$features = (array) $feature;
foreach ( $features as $feature ) {
if ( $args ) {
$_wp_post_type_features[ $post_type ][ $feature ] = $args;
} else {
$_wp_post_type_features[ $post_type ][ $feature ] = true;
}
}
}