Se o teu blogue tem alguns anos e, a certa altura, mudaste para o editor Gutenberg, deixando todas as publicações antigas publicadas no formato do editor clássico, podes querer convertê-las agora para blocos Gutenberg de uma só vez.
Esta migração pode oferecer algumas vantagens em termos de SEO e de desempenho. Estas são explicadas no final desta publicação.
Converter em blocos O único plug-in decente que ainda existe para facilitar esta conversão é o Convert To Blocks . Basta instalá-lo. Não tem quaisquer definições ou área de administração, nem precisa de ter.
Agora, quando abrir a lista de entradas, encontrará uma nova coluna à direita do título que lhe diz se a entrada foi publicada usando o Editor Clássico ou o Editor de Blocos de Gutenberg. No entanto, não existe uma forma de as ordenar.
Não é assim tão bom porque isto pode ser feito com uma função que adicionará uma coluna à direita mostrando "Clássico" ou "Gutenberg" a cada publicação. Algo do género:
// Añadir la columna personalizada en la lista de entradas que muestre si fueron publicadas con el editor Clásico o Gutenberg
function add_editor_type_column($columns) {
$columns['editor_type'] = 'Editor';
return $columns;
}
add_filter('manage_posts_columns', 'add_editor_type_column');
// Mostrar el contenido de la columna personalizada
function display_editor_type_column($column_name, $post_id) {
if ($column_name === 'editor_type') {
$content = get_post_field('post_content', $post_id);
if (strpos($content, '<!-- wp:') !== false) {
echo 'Gutenberg';
} else {
echo 'Clásico';
}
}
}
add_action('manage_posts_custom_column', 'display_editor_type_column', 10, 2);
// Hacer que la columna sea ordenable
function make_editor_type_column_sortable($columns) {
$columns['editor_type'] = 'editor_type';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'make_editor_type_column_sortable');
// Modificar la consulta para ordenar por el tipo de editor
function sort_posts_by_editor_type($query) {
if (!is_admin() || !$query->is_main_query()) {
return;
}
if ($query->get('orderby') === 'editor_type') {
$query->set('meta_key', '_editor_type');
$query->set('orderby', 'meta_value');
}
}
add_action('pre_get_posts', 'sort_posts_by_editor_type');
// Guardar el tipo de editor como metadato al guardar el post
function save_editor_type_metadata($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
$content = get_post_field('post_content', $post_id);
$editor_type = (strpos($content, '<!-- wp:') !== false) ? 'gutenberg' : 'classic';
update_post_meta($post_id, '_editor_type', $editor_type);
}
add_action('save_post', 'save_editor_type_metadata');
O interessante do plugin é que ele converte "on the fly". Isto significa que, se editar qualquer publicação, esta será automaticamente convertida para o Gutenberg quando abrir o editor. Se alguma coisa correr mal, poderá ver e sair sem guardar, descartando as alterações para editar o que suspeita ter causado o erro de conversão e tentar novamente.
Isto é ótimo para converter algumas dezenas de mensagens. Funciona muito bem e converte com sucesso quase todos os posts em que o testei. O Convert to Blocks avisa que, por defeito, não converterá os seus blocos personalizados.
Conversão em massa ou em lote Mas e se tiver centenas ou milhares, como foi o meu caso, de posts para converter? É aqui que entra em ação a caraterística mais útil do plugin. Ele permite a conversão em massa usando WP-CLI . Se já sabes como usar o WP-CLI, podes saltar esta parte e, se não sabes, podes ir a este link .
Na sua página GitHub pode encontrar a lista de comandos que pode utilizar.
NOMBRE
wp convert-to-blocks start
DESCRIPCIÓN
Inicia una nueva Migración. El comando imprime la URL que debe abrirse en un navegador para conectarlo a la CLI de WP.
SYNOPSIS
wp convert-to-blocks start [--post_type=<post_type>] [--per_page=<per_page>] [--page=<page>] [--only=<only>] [--catalog] [--reset]
OPCIONES
[--post_type=<post_type>]
Lista opcional delimitada por comas de los tipos de entrada a migrar. Por defecto post,page
[--per_page=<per_page>]
Número opcional de posts a migrar por lote. Por defecto no hay límite. Combinar con --page para paginar.
[--page=<page>]
Número de página opcional desde el que iniciar la migración. Por defecto es 1.
[--only=<only>]
Lista opcional delimitada por comas de ID de post a migrar.
[--catalog]
Bandera opcional para migrar sólo las entradas etiquetadas del editor clásico. Requiere que el plugin Block Catalog esté presente y haya sido indexado.
[--reset]
Detiene cualquier migración en curso y restablece el estado de la migración.
NOMBRE
wp convert-to-blocks stop
DESCRIPCIÓN
Detiene la migración en curso si está activa.
NOMBRE
wp convert-to-blocks status
DESCRIPCIÓN
Imprime el estado de la migración en curso.
Se tiver um alojamento partilhado ou simplesmente não quiser diminuir a velocidade de carregamento devido à elevada utilização do CPU na conversão (tenha em conta que não se trata apenas de converter, mas também de guardar/publicar todos os posts um a um), aconselho-o a fazê-lo em lotes.
Escolhi a opção de converter um determinado número de mensagens, adicionando blocos de cerca de 100 IDs em cada lote.
Sabemos como ver o ID de um post porque na edição aparece no URL, mas agora precisamos de extrair todos os IDs dos posts publicados com o editor clássico separados por uma vírgula sem espaços.
Também tenho uma função para o efeito.
// Función para obtener los IDs de posts creados con el editor clásico
function obtener_ids_posts_editor_clasico() {
global $wpdb;
// Consulta para obtener los IDs de los posts que NO contienen bloques de Gutenberg
$query = "
SELECT ID
FROM {$wpdb->posts}
WHERE post_content NOT LIKE '%<!-- wp:%'
AND post_status = 'publish'
AND post_type = 'post' -- Solo posts, excluye páginas y otros tipos
AND post_content != '' -- Excluye posts vacíos
AND post_title != '' -- Excluye posts sin título
AND post_name != '' -- Excluye posts sin slug válido
";
$results = $wpdb->get_col($query);
// Convierte el array de IDs en una cadena separada por comas
$ids_comma_separated = implode(',', $results);
return $ids_comma_separated;
}
// Shortcode para mostrar el listado de IDs y el número total de posts con el editor clásico
add_shortcode('listado_ids_clasico', function() {
// Obtener la lista de IDs
$ids_posts_clasico = obtener_ids_posts_editor_clasico();
// Contar el número total de IDs
$total_posts = count(explode(',', $ids_posts_clasico));
// Mostrar el contador y la lista de IDs
return 'Total de posts creados con el editor clásico: ' . $total_posts . '<br>IDs de posts: ' . $ids_posts_clasico;
});
Uso:
1. Copia el código en el archivo functions.php de tu tema o en un plugin personalizado.
2. Inserta el shortcode [listado_ids_clasico] en cualquier página o entrada de WordPress no hace falta que la publiques. Te bastará hacer una vista previa del borrador.
3. El shortcode mostrará el número total de posts creados con el editor clásico y una lista de sus IDs.
- Este código lista solo los posts publicados que no contienen bloques de Gutenberg.
- Excluye páginas, revisiones, posts vacíos, posts sin título y posts sin slug válido.
- Si necesitas incluir otros tipos de contenido (por ejemplo, páginas), cambia `post_type = 'post'` por `post_type IN ('post', 'page')`.
- Si quieres excluir otros tipos de contenido no deseado, agrega más condiciones a la consulta SQL.
E é isto que vai receber (*na revisão acrescentei que incluo também o valor do montante total).
Agora pode selecionar tantos IDs quantos quiser e converter em lotes como desejar.
Como o LucusHost tem o WP-CLI instalado, a partir do cPanel tenho o terminal pronto para lhe dar cana.
Abre-se e liga-se ao caminho da raiz da sua instalação do WP.
cd public_html/staging
Enter
Por fim, escrevemos o nosso comando com os IDs dos posts que vamos converter. Exemplo:
wp convert-to-blocks start --only=3017,3100,3145,3281,3357,4121,4505,4564,4586,4623,4647,4665,4688,4706,4712,4727,4793,16019,50411,87386
Se premirmos novamente a tecla Enter, obtemos um URL que teremos de abrir numa nova janela para iniciar o processo.
Conversão... Agora só temos de esperar que esteja terminado e dar uma vista de olhos às conversões para ver se há alguma coisa para polir e aperfeiçoar.
Benefícios de SEO e desempenho Ainda há muitas pessoas fiéis ao minimalismo do editor clássico , mas o Gutenberg, embora a um ritmo desesperadamente lento, melhorou muito desde o seu lançamento. A sua utilização já tem mais vantagens do que desvantagens.
Benefícios da SEO: Não espere que o seu sítio esteja no topo da lista de resultados de pesquisa de um dia para o outro ao fazer esta conversão, mas todas as melhorias são importantes.
Melhor estrutura do conteúdo: O Gutenberg permite-lhe criar conteúdos mais estruturados utilizando blocos (parágrafos, cabeçalhos, listas, etc.). Torna mais fácil para os motores de busca compreenderem melhor a hierarquia e a relevância do conteúdo. Otimização dos títulos (H1, H2, H3, etc.): É mais fácil adicionar e gerir títulos, melhorando a legibilidade e a organização do conteúdo. Imagens mais optimizadas: O Gutenberg permite que os atributos alt, os títulos e as descrições sejam adicionados diretamente aos blocos de imagens. Utilização de blocos específicos para SEO: Se utilizar plugins como Yoast SEO ou Rank Math , estes oferecem blocos específicos para melhorar a SEO (por exemplo, blocos de FAQ ou Schema Markup). Conteúdos mais interactivos: Os blocos interactivos (tabelas, botões, acordeões) melhoram a experiência do utilizador e reduzem a taxa de rejeição. As entradas longas com muitos elementos publicadas com o editor clássico tendem a ter um CLS elevado e são também mais lentas, pelo que indexam pior ou perdem posicionamento. Vantagens de desempenho: Código mais limpo e mais leve: O Gutenberg gera HTML mais limpo e semântico, reduzindo o tamanho da página e melhorando os tempos de carregamento. Carregamento diferido de recursos: Alguns blocos (como as imagens) permitem o carregamento lento de forma nativa. Menos dependência de códigos curtos: O Gutenberg permite que muitos códigos de acesso sejam substituídos por blocos nativos mais eficientes. Otimização do conteúdo visível (acima da dobra): Facilita a criação de conteúdos optimizados para a parte visível da página sem deslocação. Menos plugins necessários: Reduzir a carga do plugin integrando funcionalidades como colunas, tabelas ou botões. Vantagens adicionais:
Melhor experiência de edição: Oferece uma experiência de edição mais moderna e intuitiva. Compatibilidade com temas e plug-ins modernos: Muitos temas e plug-ins já estão optimizados para o Gutenberg.
Futuro do editor.
Aqui não tenho tanta certeza. O Gutenberg é o (único) futuro do WordPress, embora eu não pense tanto no FSE (Full Site Editing) porque nem todos os modelos são FSE e muitos dos modelos mais populares não lançaram versões FSE. Além disso, o pessoal ainda está a usar o Elementor ou o Bricks como construtor ou o GenerateBlocks e/ou o Kadence, como blocos de suporte.