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

25 февраля 2016 5

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

С помощью пользовательских типов данных обычно строится весь дополнительный функционал сайта. Например, часто бывает необходимость вынести весь рекламный контент сайта (контекст, баннеры) в какой-то кастомный тип данных и рандомно (или даже как-то систематизированно) его откручивать в различных областях сайта. Рекламные блоки чаще всего задаются в виде 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 активной темы.

Подписываемся на канал Danilin.biz в Telegram, все самое интересное теперь там.
Иван Данилин
Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе Вордпресс.

Комментарии
  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=»»]

Добавить комментарий

Лидер среди российских регистраторов доменных имён и хостинг-провадейров