Se il vostro blog ha qualche anno e a un certo punto siete passati all'editor Gutenberg, lasciando tutti i vecchi post pubblicati nel formato dell'editor classico, potreste volerli convertire ora in blocchi Gutenberg in un colpo solo.
Questa migrazione può offrire alcuni vantaggi in termini di SEO e di prestazioni. Questi sono spiegati alla fine di questo post.
Convertire in blocchi L'unico plug-in decente rimasto per facilitare questa conversione è Convert To Blocks . Basta installarlo. Non ha impostazioni o area di amministrazione, né ne ha bisogno.
Ora, quando si apre l'elenco delle voci, si trova una nuova colonna a destra del titolo che indica se la voce è stata pubblicata con l'Editor classico o con l'Editor a blocchi di Gutenberg. Tuttavia, manca un modo per ordinarle.
Non è così bello perché questo può essere fatto con una funzione che aggiunge una colonna a destra che mostra "Classic" o "Gutenberg" a ogni post. Qualcosa del genere:
// 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');
La cosa interessante del plugin è che si converte "al volo". Ciò significa che se si modifica un qualsiasi post, questo verrà automaticamente convertito in Gutenberg quando si apre l'editor. Se qualcosa va storto, sarà possibile vederlo e uscire senza salvare, scartando le modifiche per modificare ciò che si sospetta abbia causato l'errore di conversione e riprovare.
Va bene per convertire qualche decina di post. Funziona molto bene e converte con successo quasi tutti i post su cui l'ho testato. Convert to Blocks avverte che per impostazione predefinita non converte i blocchi personalizzati.
Conversione in blocco o in batch Ma cosa succede se avete centinaia o migliaia, come nel mio caso, di post da convertire? È qui che entra in gioco la caratteristica più utile del plugin. Permette di effettuare conversioni in blocco utilizzando WP-CLI . Se sapete già come usare WP-CLI, potete saltare questa parte; se non lo sapete, potete andare a questo link .
Sulla loro pagina GitHub è possibile trovare l' elenco dei comandi da utilizzare.
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 avete un hosting condiviso o semplicemente non volete rallentare la velocità di caricamento a causa dell'elevato utilizzo della CPU per la conversione (tenete presente che non si limita a convertire, ma deve anche salvare/pubblicare tutti i post uno per uno), vi consiglio di farlo in batch.
Ho scelto l'opzione di convertire un certo numero di messaggi aggiungendo blocchi di circa 100 ID in ogni lotto.
Sappiamo come vedere l'ID di un post perché nell'edizione appare nell'URL, ma ora dobbiamo estrarre tutti gli ID dei post pubblicati con l'editor classico separati da una virgola senza spazi.
Ho anche una funzione per questo.
// 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.
Ecco cosa otterrete (*nella revisione ho aggiunto anche la cifra dell'importo totale).
Ora è possibile selezionare tutti gli ID desiderati e convertire in batch come si desidera.
Poiché LucusHost ha installato WP-CLI, da cPanel ho il terminale pronto per dargli il bastone.
Si apre e si collega al percorso principale dell'installazione di WP.
cd public_html/staging
Enter
Infine, digitiamo il nostro comando con gli ID dei post che intendiamo convertire. Esempio:
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
Premendo nuovamente il tasto Invio, si ottiene un url da aprire in una nuova finestra per avviare il processo.
Conversione... Ora dobbiamo solo aspettare che sia finito e dare un'occhiata alle conversioni per vedere se c'è qualcosa da lucidare e perfezionare.
Vantaggi in termini di SEO e prestazioni Ci sono ancora molti fedeli al minimalismo dell'editor classico , ma Gutenberg, anche se a un ritmo disperatamente lento, è migliorato molto dal suo rilascio. Il suo utilizzo presenta già più vantaggi che svantaggi.
Vantaggi della SEO: Non aspettatevi che il vostro sito diventi il primo nei risultati di ricerca da un giorno all'altro grazie a questa conversione, ma ogni miglioramento è un valore aggiunto.
Migliore struttura dei contenuti: Gutenberg consente di creare contenuti più strutturati utilizzando blocchi (paragrafi, titoli, elenchi, ecc.). In questo modo è più facile per i motori di ricerca capire meglio la gerarchia e la rilevanza dei contenuti. Ottimizzazione dei titoli (H1, H2, H3, ecc.): È più facile aggiungere e gestire le intestazioni, migliorando la leggibilità e l'organizzazione dei contenuti. Immagini più ottimizzate: Gutenberg consente di aggiungere attributi alt, titoli e descrizioni direttamente ai blocchi di immagini. Utilizzo di blocchi specifici per la SEO: Se si utilizzano plugin come Yoast SEO o Rank Math , questi offrono blocchi specifici per migliorare la SEO (ad esempio blocchi FAQ o Schema Markup). Più contenuti interattivi: I blocchi interattivi (tabelle, pulsanti, fisarmoniche) migliorano l'esperienza dell'utente e riducono la frequenza di rimbalzo. Le voci lunghe con molti elementi pubblicate con l'editor classico tendono ad avere un CLS elevato e sono anche più lente, quindi si indicizzano peggio o perdono posizionamento. Vantaggi in termini di prestazioni: Codice più pulito e leggero: Gutenberg genera un HTML più pulito e semantico, riducendo le dimensioni delle pagine e migliorando i tempi di caricamento. Caricamento differito delle risorse: Alcuni blocchi (come le immagini) consentono il caricamento pigro in modo nativo. Meno affidamento sui codici brevi: Gutenberg consente di sostituire molti shortcode con blocchi nativi più efficienti. Ottimizzazione dei contenuti visibili (above the fold): Consente di creare facilmente contenuti ottimizzati per la parte visibile della pagina senza scorrere. È necessario un minor numero di plugin: Ridurre il carico del plugin integrando funzionalità come colonne, tabelle o pulsanti. Ulteriori vantaggi:
Migliore esperienza di editing: Offre un'esperienza di editing più moderna e intuitiva. Compatibilità con temi e plugin moderni: Molti temi e plugin sono già ottimizzati per Gutenberg.
Il futuro dell'editore.
Qui non ne sono così sicuro. Gutenberg è il futuro (l'unico) di WordPress, anche se non credo molto a FSE (Full Site Editing) perché non tutti i template sono FSE e molti dei template più popolari non hanno rilasciato versioni FSE. Inoltre, il personale utilizza ancora Elementor o Bricks come costruttore o GenerateBlocks e/o Kadence, come blocchi di supporto.