Como desativar o Gutenberg no WordPress 5.0

A versão 5.0 do WordPress está para ser lançada em breve.

A previsão é 19 de novembro. Como você já sabe, ele virá com o novo editor de Gutenberg integrado em seu núcleo.

Durante todo esse ano de 2018 houve muita conversa sobre o Gutenberg: se é bom, se é ruim, se vai haver bloqueio, se você vai perder tudo que já tem publicado, o que vai acontecer com o Divi, Elementor etc …

O que é provável, é que muitos usuários a princípio vão quer remover ou desativar o Gutenberg, até que possam provar, passar algum tempo, evoluir, amadurecer e dar seus primeiros passos, etc até estarem prontos para usá-lo plenamente.

Embora existam muitos plugins para desativar o Gutenberg, vamos ver como podemos desativá-lo com apenas algumas linhas de código.

Desative o Gutenberg completamente

Embora pareça incrível, você só precisará de uma linha de código para desabilitar completamente o Gutenberg e voltar ao editor clássico do WordPress.

Basta adicionar o seguinte código ao arquivo functions.php ou plugin:

add_filter('gutenberg_can_edit_post_type', '__return_false');

Nós simplesmente retornamos false para o filtro gutenberg_can_edit_post_type.

__return_false é uma função do WordPress, que simplesmente faz exatamente o que diz, retorna um false.

Desativar o Gutenberg para um tipo de post específico

E se eu quiser desativar o Gutenberg apenas para certos tipos de postagens? Ou, em outras palavras, e se eu quiser apenas usar o Gutenberg para um certo tipo de tipo de postagem?

Por padrão, disponibilizamos para postagens e páginas. E também para todos os tipos de postagens personalizadas (CPT) que atendem aos seguintes requisitos em seu registro:

  • suporta => array (‘editor’);
  • show_in_rest => true

Ou seja, devem suportar o editor e ser acessíveis a partir da API REST. Se não controlamos os CPT’s em nosso site porque eles foram declarados em um plugin e/ou tópico no qual não queremos tocar, podemos desativar o Gutenberg da seguinte maneira:

function disable_gutenberg_in_custom_cpts( $is_enabled, $post_type ) {
    if ( 'produto' === $post_type ) {
        return false; // Substitua 'produto' pelo seu CPT
    }
return $is_enabled;
}
add_filter( 'gutenberg_can_edit_post_type',
'disable_gutenberg_in_custom_cpts', 10, 2 );

Um exemplo semelhante ao anterior, embora só retornemos false se a condição $post_type for igual à que desejamos desativar o Gutenberg for satisfeita, neste exemplo ‘produto’.

Se quiséssemos desativá-lo, por exemplo, nas páginas, podemos adicionar mais uma condição na mesma função:

if ( 'page' === $post_type ) {
    return false;
}

Desativar o Gutenberg para um papel específico

Outra necessidade que podemos ter é desativar o novo editor Gutenberg para uma função específica. Desta forma, os editores, colaboradores, autores, etc do site (ou blog) continuarão a ver o editor clássico.

Neste exemplo, desativamos o Gutenberg para todas as funções abaixo do administrador:

function disable_gutenberg_for_roles( $is_enabled, $post_type ) {
    if ( ! current_user_can('manage_options') ) {
        return false;
    }
return $is_enabled;
}
add_filter( 'gutenberg_can_edit_post_type',
'disable_gutenberg_for_roles', 10, 2 );

Conclusão

Mexendo um pouco com os papéis dos usuários e os tipos de conteúdo, podemos desabilitar o Gutenberg a nosso gosto com algumas linhas de código, sem a necessidade de instalar plugins adicionais.

Talvez você goste de

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *