Можно ли удалить WYSIWYG для определенного пользовательского типа сообщения?

18

Я не хочу использовать WYSIWYG в верхней части моего пользовательского типа сообщения. Я хочу использовать текстовое поле настраиваемого поля, которое вместо этого я могу поместить внизу списка настраиваемых полей.

Это возможно?

scottgemmell
источник

Ответы:

20
add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'your post type';
    remove_post_type_support( $post_type, 'editor');
}

поместите его в ваши темы functions.php

Олег Бутузов
источник
1
Примечание: я бы рекомендовал вызывать remove_post_type_support()внутри того же обратного вызова, который вы вызываете register_post_type(), чтобы обеспечить правильный порядок выполнения.
Чип Беннетт
Я не вижу register_post_type () в functions.php. Я использую пользовательский интерфейс типов в комбинации с AdvancedCustomFields.
Скоттгеммелл
То, что вы используете пользовательский плагин UI Post Types, является довольно важной деталью в вашем вопросе. :) Плагин предоставляет supportsпараметр в своем пользовательском интерфейсе.Обратитесь к этим скриншотам .
Чип Беннетт
14

Вы можете фактически отключить редактор WYSIWYG, оставив только редактор HTML-кода. Выберите функцию ниже:

// disable wyswyg for custom post type, using the global $post
add_filter('user_can_richedit', function( $default ){
  global $post;
  if( $post->post_type === 'product')  return false;
  return $default;
});

// disable wyswyg for custom post type, using get_post_type() function
add_filter('user_can_richedit', function( $default ){
  if( get_post_type() === 'product')  return false;
  return $default;
});
user188421
источник
Есть ли способ удалить только WYSIWYG из выдержки? Моя тема уже включена, и я сомневаюсь в части их кода, я не уверен, что смогу удалить его. Я задал это как новый вопрос здесь: wordpress.stackexchange.com/questions/300877/…
Джейсон
Привет, если честно, я не знаю, мои знания WP немного ржавые, извините. Единственное, что я могу предложить, это покопаться в исходном коде WP, найти что-то подходящее, а затем duckduckgo / google для документации / примеров.
user188421
9

В качестве альтернативы, вы можете обрабатывать поддержку постредактора непосредственно в вашем register_post_type()вызове через 'supports'параметр в $argsмассиве.

Значение по умолчанию: 'supports' => array( 'title', 'editor' ).

Вы можете изменить это на то, что вам нужно; например: 'supports' => array( 'title' ).

Чип Беннетт
источник
6

Re: этот комментарий:

Я использую пользовательский интерфейс типов в комбинации с AdvancedCustomFields.

ТАМОЖЕННЫЙ ПОСТ Типы UI Плагин предоставляет все изregister_post_type() $args параметры массива в его интерфейсе.

В этом случае вам просто нужно найти раздел « Поддержка » и отключить / снять флажок « Редактор» :

Плагин пользовательского интерфейса для пользовательских типов сообщений - Регистрация параметров типа сообщений

Чип Беннетт
источник
Даже если в качестве выбранного ответа был выбран другой ответ, это правильный ответ. Нет необходимости запускать фильтр для удаления чего-то, что вы можете просто исключить при объявлении CPT для начала.
butlerblog
-1

Другой, более последовательный способ отключить редактор WYSIWYG, оставляя только редактор исходного кода html, - запретить использование tinymce, используя фильтр «wp_editor_settings» для вашего пользовательского типа записи.

function my_post_type_editor_settings( $settings ) {

    global $post_type;

    if ( $post_type == 'my_post_type' ) {

        $settings[ 'tinymce' ] = false;
    }

    return $settings;
}

add_filter( 'wp_editor_settings', 'my_post_type_editor_settings' );
Валерия Олейник
источник
Пожалуйста, отредактируйте свой ответ и добавьте объяснение: почему может решить проблему?
fuxia