¿Es posible eliminar el editor WYSIWYG para un tipo de contenido personalizado específico?

16 nov 2012, 18:03:20
Vistas: 30.9K
Votos: 23

No quiero usar el editor WYSIWYG en la parte superior de mi tipo de contenido personalizado. En su lugar, quiero usar un campo de texto personalizado que pueda colocar al final de mi lista de campos personalizados.

¿Es esto posible?

0
Todas las respuestas a la pregunta 6
4
28
add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'tu tipo de post'; // Traducción de 'your post type'
    remove_post_type_support( $post_type, 'editor');
}

colócalo en el functions.php de tu tema

16 nov 2012 18:09:49
Comentarios

Nota: Recomendaría llamar a remove_post_type_support() dentro del mismo callback donde llamas a register_post_type(), para garantizar el orden correcto de ejecución.

Chip Bennett Chip Bennett
16 nov 2012 18:21:20

No veo register_post_type() en functions.php. Estoy usando Custom Types UI en combinación con AdvancedCustomFields.

scottgemmell scottgemmell
16 nov 2012 18:42:08

Que estés usando el Plugin Custom Post Types UI es un detalle bastante importante para tu pregunta. :) El Plugin expone el parámetro supports en su interfaz. Consulta estas capturas de pantalla.

Chip Bennett Chip Bennett
16 nov 2012 18:58:01

Esto elimina ambos editores (código y visual), no solo el visual - la pregunta era sobre eliminar el editor WYSIWYG)

gordie gordie
4 feb 2022 17:46:06
2
22

Puedes desactivar el editor WYSIWYG, dejando solo el editor de código HTML. Elige una de las siguientes funciones:

// deshabilitar wyswyg para un tipo de contenido personalizado, usando la variable global $post
add_filter('user_can_richedit', function( $default ){
  global $post;
  if( $post->post_type === 'product')  return false;
  return $default;
});

// deshabilitar wyswyg para un tipo de contenido personalizado, usando la función get_post_type()
add_filter('user_can_richedit', function( $default ){
  if( get_post_type() === 'product')  return false;
  return $default;
});
11 dic 2014 13:29:46
Comentarios

¿Hay alguna forma de eliminar solo el WYSIWYG del extracto? Mi tema lo tiene activado y tengo dudas sobre parte de su código, no estoy seguro de poder eliminarlo. Hice esta pregunta como una nueva pregunta aquí: https://wordpress.stackexchange.com/questions/300877/disable-wysiwyg-rich-text-editor-only-on-post-excerpt

Jason Jason
16 abr 2018 09:13:01

Hola, honestamente, no lo sé, mi conocimiento de WP está un poco oxidado, lo siento. Lo único que puedo sugerir es adentrarte en el código fuente de WP, encontrar algo relevante y luego buscar en duckduckgo/google para encontrar documentación/ejemplos.

biziclop biziclop
17 abr 2018 09:32:45
1
12

Alternativamente, puedes manejar el soporte del editor de entradas directamente en tu llamada a register_post_type(), mediante el parámetro 'supports' en el array $args.

El valor por defecto es: 'supports' => array( 'title', 'editor' ).

Puedes cambiarlo según tus necesidades; por ejemplo: 'supports' => array( 'title' ).

16 nov 2012 18:20:36
Comentarios

esta debería ser la respuesta aceptada porque esta es la forma más racional de hacer esto

rafa226 rafa226
19 ago 2021 11:53:10
1

En respuesta a este comentario:

Estoy usando Custom Types UI en combinación con AdvancedCustomFields.

El Plugin Custom Post Types UI expone todos los parámetros del array $args de register_post_type() en su interfaz.

En este caso, solo necesitas encontrar la sección Supports y deshabilitar/desmarcar Editor:

Plugin Custom Post Types UI - Opciones de Registro de Tipo de Post

16 nov 2012 19:01:31
Comentarios

Aunque otra respuesta fue marcada como la respuesta seleccionada, esta es la respuesta correcta. No hay necesidad de ejecutar un filtro para eliminar algo que simplemente puedes excluir al declarar el CPT desde el principio.

butlerblog butlerblog
13 ago 2017 21:56:41
0

Intentaré dar una respuesta más completa:

Si deseas eliminar completamente el editor de contenido

La respuesta de @Oleg Butuzov es buena:

add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'tu tipo de post';
    remove_post_type_support( $post_type, 'editor');
}

Si solo quieres desactivar tinymce pero mantener las barras de herramientas HTML

La respuesta de @biziclop es buena:

add_filter('user_can_richedit', function( $default ){
  global $post;
  if( $post->post_type === 'product')  return false;
  return $default;
});

En este caso wp-content-editor-tools ya es visible porque expand-editor.js inserta las barras de herramientas.

Si deseas reemplazar el editor tinymce por un simple textarea

Encontré la respuesta aquí.

function wpse_199918_wp_editor_settings( $settings, $editor_id ) {
    if ( $editor_id === 'content' && get_current_screen()->post_type === 'custom_post_type' ) {
        $settings['tinymce']   = false;
        $settings['quicktags'] = false;
        $settings['media_buttons'] = false;
    }

    return $settings;
}

add_filter( 'wp_editor_settings', 'wpse_199918_wp_editor_settings', 10, 2 );
3 sept 2020 22:31:16
1

Otra forma más consistente de deshabilitar el editor WYSIWYG, dejando solo el editor de código fuente HTML, es desactivar tinymce usando el filtro "wp_editor_settings" para tu tipo de contenido 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' );
11 may 2017 14:43:24
Comentarios

Por favor, [edita] tu respuesta y añade una explicación: ¿por qué esto podría resolver el problema?

fuxia fuxia
11 may 2017 15:04:32