March 27, 2019

Ocultar el editor de bloques Gutenberg por tipo de contenido

Gutenberg es el nombre del proyecto surgido para revolucionar y evolucionar WordPress, y concretamente iniciado para cambiar por completo el editor para generar e incluso maquetar el contenido con un nuevo editor llamado editor de bloques.

¡La revolución de los bloques!

Este nuevo editor tiene seguidores y detractores, como no podría ser de otro modo a raiz de un cambio tan grande en la experiencia de generación de contenido del 30% o más de internet.

La parte buena de estos cambios es que como todo en WordPress trata de respetarse la retrocompatibilidad para que nada deje de funcionar al incorporarse nuevos cambios en las nuevas versiones de WordPress surgidas en paralelo al desarrollo del proyecto Gutenberg.

En cualquier caso, no siempre todo funciona según las dependencias a otros plugins, temas y codigo personalizado que pueda tener una web, por lo que tal vez necesitas, o simplemente quieres seguir usando el editor clasico y no quieres ver el nuevo editor de bloques en tu web o parte de ella.

Dicho esto, es posible de un modo muy fácil desactivar el nuevo editor de bloques según el tipo de contenido que quieras tratar y que tengas en tu web; los llamados custom post types.

Con el siguiente código podrás desactivar el nuevo editor de bloques en los tipos de contenido que definas:

/**
 * Limit where you can work with Gutenberg
*/
add_action( 'current_screen', function( $current_screen ) {

    $guten_free = [ 'post_type_ONE', 'post_type_TWO', 'post_type_THREE' ];

    if ( in_array( $current_screen->post_type, $guten_free, true ) ) {
        add_filter( 'use_block_editor_for_post_type', '__return_false', 100 );
    }

} );

La definición de los custom post types o tipos de contenidos donde NO quieres que aparezca el nuevo editor de bloques se realiza en la línea 8 al declarar la variable <strong>$guten_free</strong> en la cual debes indicar los CPT que quieres con el editor clásico de WordPress.

Lo que hace el codigo de ejemplo planteado es utilizar un hook del admin de WordPress que es lanzado cuando ya están definidos los elementos que permiten saber que pantalla se está cargando. Por tanto, lo que hace el código es revisar si la pantalla a mostrar es uno de los tipos de contenidos definidos, y en ese caso aplicar un filtro con retorno como falso, diciendole así a WordPress que en ese momento no muestre el editor de bloques.

Como has podido comprobar es muy fácil controlar donde aparece el editor de bloques de WordPress surgido con el proyecto Gutenberg, por lo que no necesitas instalar un plugin para ello y sólo tienes que introducir este código presentado o parecido en tu propio plugin personalizado, pudiendo iniciarlo en base al boilerplate de SumaPress.

Si te ha gustado... ¡Compártelo!