¿Es posible eliminar WYSIWYG para un determinado tipo de mensaje personalizado?

18

No quiero usar el WYSIWYG en la parte superior de mi Tipo de publicación personalizada. Quiero utilizar un área de texto de campo personalizado que puedo colocar en la parte inferior de mi lista de campos personalizados.

es posible?

scottgemmell
fuente

Respuestas:

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

colóquelo en sus temas functions.php

Oleg Butuzov
fuente
1
Nota: recomendaría llamar remove_post_type_support()dentro de la misma devolución de llamada que usted register_post_type()para asegurar el orden correcto de ejecución.
Chip Bennett
No veo register_post_type () en functions.php. Estoy usando la interfaz de usuario de tipos personalizados en combinación con AdvancedCustomFields.
scottgemmell
Que esté utilizando el complemento de IU de tipos de publicaciones personalizadas es un detalle bastante importante para su pregunta. :) El complemento expone el supportsparámetro en su interfaz de usuario. Consulte estas capturas de pantalla .
Chip Bennett
14

En realidad, puede deshabilitar el editor WYSIWYG, dejando solo el editor fuente html. Elija una función a continuación:

// 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;
});
usuario188421
fuente
¿Hay alguna manera de eliminar solo el WYSIWYG del extracto? Mi tema lo tiene activado, y tengo dudas sobre algunos de sus códigos, no estoy seguro de poder eliminarlo. Hice esto como una nueva pregunta aquí: wordpress.stackexchange.com/questions/300877/…
Jason
Hola, sinceramente, no sé, mi conocimiento de WP está un poco oxidado, lo siento. Lo único que puedo sugerir es profundizar en el código fuente de WP, encontrar algo relevante, luego duckduckgo / google it para obtener documentación / ejemplos.
user188421
9

Alternativamente, puede manejar el soporte posterior al editor directamente en su register_post_type()llamada, a través del 'supports'parámetro en la $argsmatriz.

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

Puedes cambiarlo a lo que necesites; por ejemplo: 'supports' => array( 'title' ).

Chip Bennett
fuente
6

Re: este comentario:

Estoy usando la interfaz de usuario de tipos personalizados en combinación con AdvancedCustomFields.

El complemento de IU de tipos de publicaciones personalizadas expone todos los register_post_type() $argsparámetros de la matriz en su IU.

En este caso, simplemente necesita encontrar la sección Soportes y deshabilitar / desmarcar Editor :

Complemento de IU de tipos de publicación personalizados: opciones de tipo de registro

Chip Bennett
fuente
Aunque se estableció otra respuesta como la respuesta seleccionada, esta es la respuesta correcta. No es necesario ejecutar un filtro para eliminar algo que simplemente puede excluir al declarar el CPT para empezar.
butlerblog
-1

Otra forma más consistente de deshabilitar el editor WYSIWYG, dejando solo el editor fuente html, es no permitir tinymce usando el filtro "wp_editor_settings" para su tipo de publicación 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' );
Валерия Олейник
fuente
Por favor, editar su respuesta , y añadir una explicación: ¿por qué podría que resolver el problema?
fuxia