Как отключить визуальный редактор для некоторых типов данных Вордпресс

Опубликовано 8 лет назад

Пользовательские типы данных (Custom Post Types) — невероятно удобный механизм Вордпресс, позволяющий сайту выйти далеко за пределы типового блога. А вкупе с кастомными таксономиями позволяет разработчику вообще творить чудеса.

С помощью пользовательских типов данных обычно строится весь дополнительный функционал сайта. Например, часто бывает необходимость вынести весь рекламный контент сайта (контекст, баннеры) в какой-то кастомный тип данных и рандомно (или даже как-то систематизированно) его откручивать в различных областях сайта. Рекламные блоки чаще всего задаются в виде HTML/JS-кода. Который корректно вставить в редактор можно лишь в текстовом режиме. Поэтому, в данном случае для конкретно этого типа данных, имеет смысл отключить визуальный редактор.

Отключаем визуальный редактор для некоторых типов данных WordPress

Как это сделать?

Для этого можно воспользоваться сниппетом, который отключит визуальный редактор для типа данных ads, например.

add_filter( 'user_can_richedit', 'disable_for_cpt' );
function disable_for_cpt( $default ) {
	global $post;
	if ( get_post_type( $post ) == 'ads' )
		return false;
	return $default;
}

Аналогичным образом можно отключить визуальный редактор для конкретных страниц. Например, для страницы с ID = 2 вместо:

get_post_type( $post ) == 'ads'

нужно указать:

get_the_ID() == '2'

Условия, естественно, можно комбинировать, задав, например, несколько типов данных, несколько страниц и т.д. Я думаю, смысл понятен. Сниппет традиционно размещаем в файле functions.php активной темы.

Иван Данилин
Автор Иван Данилин

Фулстек веб‑разработчик, специализируюсь на платформе WordPress

Подробнее
Комментарии
  1. может кто-то подскажет как отключить кнопку для определённых груп?
    • Проверяйте пользователей ф-ей current_user_can(), скрыть кнопку для всех кроме админов можно так, например

      function RemoveAddMediaButtonsForNonAdmins(){
      if ( !current_user_can( ‘manage_options’ ) ) {
      remove_action( ‘media_buttons’, ‘media_buttons’ );
      }
      }
      add_action(‘admin_head’, ‘RemoveAddMediaButtonsForNonAdmins’);
      • получилось.. большое большое спасибо, ни яндекс ни гугл на счёт этого не выдаёт ничего..
        • В редакторе Вордпресс ссылка на изображение вставляется в виде изображения. Если способ не совсем очевидный, сделайте шорткод, как-нибудь так [img src=»»]
Добавить комментарий