É possível remover o WYSIWYG para um determinado tipo de postagem personalizado?

18

Não quero usar o WYSIWYG na parte superior do meu Tipo de postagem personalizado. Quero usar uma área de texto de campo personalizado que possa ser colocada na parte inferior da minha lista de campos personalizados.

Isso é possível?

scottgemmell
fonte

Respostas:

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

coloque-o em seus temas functions.php

Oleg Butuzov
fonte
11
Nota: eu recomendaria chamar remove_post_type_support()dentro do mesmo retorno que você chama register_post_type(), para garantir a ordem correta de execução.
Chip Bennett
Eu não vejo register_post_type () em functions.php. Estou usando a interface do usuário de tipos personalizados em combinação com AdvancedCustomFields.
scottgemmell
O uso do plug-in de interface do usuário de tipos de postagem personalizados é um detalhe bastante importante para sua pergunta. :) O plug-in expõe o supportsparâmetro em sua interface do usuário. Consulte estas capturas de tela .
Chip Bennett
14

Você pode realmente desativar o editor WYSIWYG, deixando apenas o editor de código-fonte html. Escolha uma função abaixo:

// 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
fonte
existe uma maneira de remover apenas o WYSIWYG do trecho? Meu tema está ativado e tenho dúvidas sobre alguns códigos deles, não tenho certeza de que posso removê-lo. Eu perguntei isso como uma nova pergunta aqui: wordpress.stackexchange.com/questions/300877/...
Jason
Olá, honestamente, não sei, meu conhecimento sobre WP está um pouco enferrujado, desculpe. A única coisa que posso sugerir é procurar o código-fonte do WP, encontrar algo relevante e, em seguida, enviar para o google / documentação para exemplos / documentação.
user188421
9

Como alternativa, você pode lidar com o suporte pós-editor diretamente na sua register_post_type()chamada, através do 'supports'parâmetro na $argsmatriz.

O valor padrão é: 'supports' => array( 'title', 'editor' ).

Você pode alterá-lo para o que precisar; por exemplo: 'supports' => array( 'title' ).

Chip Bennett
fonte
6

Re: este comentário:

Estou usando a interface do usuário de tipos personalizados em combinação com AdvancedCustomFields.

O plug-in personalizado da interface do usuário de tipos de postagem expõe todos os register_post_type() $argsparâmetros da matriz em sua interface do usuário.

Nesse caso, basta encontrar a seção Supports e desativar / desmarcar o Editor :

Plug-in personalizado da interface do usuário de Tipos de postagem - opções de Registrar tipo de postagem

Chip Bennett
fonte
Mesmo que outra resposta tenha sido definida como a resposta selecionada, esta é a resposta correta. Não é necessário executar um filtro para remover algo que você pode excluir ao declarar o CPT para começar.
Aug
-1

Outra maneira mais consistente de desativar o editor WYSIWYG, deixando apenas o editor de código-fonte html - é proibir o tinymce usando o filtro "wp_editor_settings" para o seu tipo de postagem personalizado.

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' );
Валерия Олейник
fonte
Por favor edite sua resposta , e adicionar uma explicação: por que isso poderia resolver o problema?
fuxia