En mis tres últimos desarrollos me he visto con la necesidad de desactivar el Editor de Texto de WordPress, ya que para la correcta creación y edición de los contenidos de estas páginas web el usuario necesitaba varios campos personalizados para cubrir todas sus necesidades. Así que para mejorar la experiencia de usuario a la hora de editar dicho contenido de la web, decidimos substituir el Editor de texto de WordPress y el campo del extracto por unos custom field mediante CMB2. Así conseguimos ofrecer un mejor diseño en la pantalla de edición de los contenidos que ofrecieran una interfaz mucho más cómoda y lógica para trabajar.
A mi me gusta muchísimo trabajar con el framework CMB2 de WebDev Studios, con el que podemos extender WordPress mediante metaboxes en los que podemos incluir nuestros campos personalizados. Si bien es cierto que añadir metaboxes en WordPress es una tarea bien sencilla y que el Codex de WordPress nos ofrece información más que suficiente para hacerlo, con este framework podemos hacer auténticas virguerías de una forma mucho más ágil. Además varios desarrolladores han extendido el framework mediante plugins que podemos encontrar en Github. ¡Vamos, una maravilla!
En esta entrada no voy ha hablar de la sustitución de the_content() o the_excerpt() por un campo personalizado con CMB2, sino simplemente de la ocultación del Editor de texto. Pero si te parece interesante esta otra funcionalidad, házmelo saber y escribiré sobre ello en futuros posts.
Seguro que para realizar esto existen varios plugins que nos facilitan esta tarea, pero si has leído algunos artículos más de este blog habrás notado que prefiero hacerlo con código. Así pues ¡vayamos a ello!
Índice del artículo
Desactivar el Editor de Texto en las Entradas de WordPress
En este primer ejemplo te propongo quitar el Editor de texto de WordPress de los posts de WordPress. Para ello crearemos una pequeña función en nuestro plugin de funciones, o si no tenemos un plugin para tal tarea lo podemos hacer directamente en nuestro fichero functions.php
function hide_editor() {
remove_post_type_support( 'post', 'editor' );
}
add_action( 'admin_init', 'hide_editor' );
La función remove_post_type_support permite eliminar el soporte a ciertas funciones para uno o varios tipos de contenidos. Esta función recibe 2 parámetros; $post_type y $supports y ambos son obligatorios.
$post_typerecibe el tipo de contenido.$supportsrecibe la característica para eliminar. En este caso estamos eliminando el editor, pero podemos eliminar otros elementos ('title','excerpt','thumbnail','author', etc.), podemos ver el listado completo característica que puede recibirremove_post_type_supporten el Codex de WordPress.
Deshabilitar el Editor de Texto según la plantilla de la página de WordPress
En este segundo ejemplo te muestro como he ocultado el Editor de texto de WordPress de las páginas de WordPress que estén usando la plantilla de página front-page o sitemap.
function hide_editor() {
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;
if( !isset( $post_id ) ) return;
$page_template = get_post_meta( $post_id, '_wp_page_template', true );
if (
$page_template === 'page-templates/front-page.php'
||
$page_template === 'page-templates/sitemap.php'
) :
remove_post_type_support( 'page', 'editor' );
endif;
}
add_action( 'admin_init', 'hide_editor' );
Este código, aunque funcional, solo pretende ser una idea para que veas otra alternativa más avanzada a la hora de ocultar una característica en las pantallas de edición de contenido.
