Как использовать remove_post_type_support() в WordPress?

# Удаление поддержки функции из типа записи в WordPress

Функция remove_post_type_support() используется для удаления поддержки определённой функции из типа записи в WordPress.

* **Время выполнения**: один раз — 0.000021 сек (очень быстро) | 50000 раз — 0.03 сек (световая скорость)
* **Не имеет хуков (Hooks)**.

## Возвращаемое значение

Функция ничего не возвращает. Результат — null.

## Использование

Чтобы удалить поддержку функции для типа записи, используйте следующую структуру:

```php
remove_post_type_support( $post_type, $feature );

Параметры

  • $post_type (строка, обязательный) — тип записи, для которого удаляется функция.
  • $feature (строка, обязательный) — функция, которую нужно удалить.

Примеры использования

Пример 1: Удаление метабокса "Цитата" на странице редактирования записи для пользовательского типа записи "XXX"

add_action( 'init', 'my_remove_post_excerpt_feature' );

function my_remove_post_excerpt_feature() {
    remove_post_type_support( 'xxx', 'excerpt' );
}

Пример 2: Удаление поддержки форматов записей

add_action( 'init', 'my_remove_post_formats_support', 10 );

function my_remove_post_formats_support() {
    remove_post_type_support( 'post', 'post-formats' );
}

Пример 3: Скрытие визуального редактора для определённого шаблона страницы

Если вы хотите отключить визуальный редактор для страницы с определённым шаблоном, используйте следующий код:

add_action( 'init', 'remove_editor_init' );

function remove_editor_init() {
    // Если находимся не в админ-панели, завершаем выполнение.
    if ( ! is_admin() ) {
       return;
    }

    // Получаем ID записи из параметра GET.
    $current_post_id = filter_input( INPUT_GET, 'post', FILTER_SANITIZE_NUMBER_INT );
    $update_post_id = filter_input( INPUT_POST, 'post_ID', FILTER_SANITIZE_NUMBER_INT );

    // Проверяем, существует ли ID записи.
    if ( isset( $current_post_id ) ) {
       $post_id = absint( $current_post_id );
    } else if ( isset( $update_post_id ) ) {
       $post_id = absint( $update_post_id );
    } else {
       return;
    }

    // Если есть ID записи, получаем шаблон.
    if ( isset( $post_id ) ) {
       $template_file = get_post_meta( $post_id, '_wp_page_template', true );

       // Если выбран шаблон 'page-your-template.php', скрыть редактор.
       if ( 'page-your-template.php' === $template_file ) {
            remove_post_type_support( 'page', 'editor' );
            // Можно также удалить другие функции.
       }
    }
}

Заметки

  • Глобальный массив: $_wp_post_type_features — используется для хранения функций типов записей.

История изменений

  • С момента введения: 3.0.0

Leave a Reply

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