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

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

В этой статье мы рассмотрим, как скрыть визуальный редактор в WordPress, если выбрано определённое оформление страницы. Это может быть полезно, если вы хотите предоставить редакторам только базовые возможности редактирования контента.

## Как это работает

WordPress позволяет изменять различные аспекты интерфейса, в том числе скрывать редактор для определённых страниц. Мы будем использовать хук init и функцию remove_post_type_support для реализации этой функции.

## Шаги для скрытия редактора

Вам нужно будет добавить следующий код в файл functions.php вашей темы. Этот код будет отключать визуальный редактор для конкретного шаблона страниц.

### Код

```php
add_action( 'init', 'remove_editor_init' );

function remove_editor_init() {

    // Если мы не находимся в админ-панели, выходим из функции.
    if ( ! is_admin() ) {
        return;
    }

    // Получаем ID поста при редактировании через фильтр.
    $current_post_id = filter_input( INPUT_GET, 'post', FILTER_SANITIZE_NUMBER_INT );
    // Получаем ID поста при обновлении.
    $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' );
            // Также можно отключить другие функции кроме редактора.
            // См. документацию по remove_post_type_support.
        }
    }
}

Объяснение кода

  1. add_action: Эта функция позволяет нам выполнить определённый код во время загрузки WordPress. Мы используем хук init, чтобы убедиться, что код выполняется только в админской части.

  2. filter_input: Эти функции позволяют безопасно получить данные из глобальных массивов, например, из $_GET или $_POST.

  3. absint: Эта функция преобразует строку в целое число, что помогает избежать возможных ошибок и уязвимостей.

  4. get_post_meta: Мы используем эту функцию, чтобы получить метаданные (в данном случае шаблон) о посте.

  5. remove_post_type_support: Эта функция отключает поддержку определённых типов контента (в нашем случае редактора) для страниц с указанным шаблоном.

Итоги

Теперь, если вы выбрали шаблон page-your-template.php, визуальный редактор на этой странице будет скрыт. Вы можете адаптировать данный код для любых других шаблонов, просто изменив имя файла.

Это решение поможет вам сделать интерфейс более удобным для тех, кто редактирует ваши страницы, и избежать лишних функций, которые могут запутать пользователей.


Обратите внимание, что в данной статье не упоминаются ссылки и дополнительные ресурсы. Если у вас есть вопросы, не стесняйтесь задавать их!

Leave a Reply

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