Функция ADD_POST_TYPE_SUPPORT() в WordPress: описание, примеры использования, параметры

# Функция 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;
        }
    }
}

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *