Om din blogg är några år gammal och vid en viss tidpunkt bytte du till Gutenberg-redigeraren och lämnade alla de gamla inläggen publicerade i det klassiska redigeringsformatet, kanske du vill konvertera dem nu till Gutenberg-block på en gång.
Att göra denna migrering kan ge vissa SEO- och prestandafördelar. Dessa förklaras i slutet av detta inlägg.
Konvertera till block Det enda anständiga plug-in som finns kvar för att underlätta denna konvertering är Convert To Blocks . Installera det bara. Det har inga inställningar eller admin-område, och behöver inte heller något sådant.
När du nu öppnar listan över poster hittar du en ny kolumn till höger om titeln som berättar om posten publicerades med Classic Editor eller Gutenberg Block Editor. Det saknas dock ett sätt att sortera dem.
Det är inte så bra eftersom detta kan göras med en funktion som kommer att lägga till en kolumn till höger som visar "Classic" eller "Gutenberg" till varje inlägg. Något som detta:
// 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');
Det intressanta med pluginet är att det konverterar "on the fly". Det innebär att om du redigerar ett inlägg kommer det automatiskt att konverteras till Gutenberg när du öppnar redigeraren. Om något går fel kommer du att kunna se det och avsluta utan att spara, kasta ändringarna för att redigera det du misstänker orsakade konverteringsfelet och försöka igen.
Det här är bra för att konvertera några dussin inlägg. Det fungerar mycket bra och konverterar framgångsrikt nästan alla inlägg som jag testade det på. Convert to Blocks varnar för att det som standard inte kommer att konvertera dina anpassade block.
Mass- eller batchkonvertering Men vad händer om du har hundratals eller tusentals, som var mitt fall, av inlägg att konvertera? Det är här den mest användbara funktionen i pluginet kommer in i bilden. Det möjliggör bulkkonvertering med hjälp av WP-CLI . Om du redan vet hur man använder WP-CLI kan du hoppa över den här biten och om du inte gör det kan du gå till den här länken .
På deras GitHub-sida kan du hitta listan över kommandon du kan använda.
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.
Om du har en delad hosting eller helt enkelt inte vill sakta ner laddningshastigheten på grund av den höga CPU-användningen av konverteringen (kom ihåg att den inte bara konverterar, den måste också spara / publicera alla inlägg en efter en) rekommenderar jag att du gör det i satser.
Jag valde alternativet att konvertera ett visst antal inlägg genom att lägga till block med cirka 100 ID:n i varje batch.
Vi vet hur man ser ID:t för ett inlägg eftersom det i utgåvan visas i URL:en, men nu måste vi extrahera alla ID:n för de inlägg som publicerats med den klassiska redigeraren separerade med ett kommatecken utan mellanslag.
Jag har också en funktion för det.
// 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.
Och det här är vad du kommer att få (* i revisionen har jag lagt till att jag också inkluderar siffran för det totala beloppet).
Nu kan du välja så många ID:n du vill och konvertera i omgångar som du vill.
Eftersom LucusHost har WP-CLI installerat, från cPanel har jag terminalen redo att ge honom sockerrör.
Den öppnas och ansluter till rotsökvägen för din WP-installation.
cd public_html/staging
Enter
Slutligen skriver vi vårt kommando med ID: erna för de inlägg vi ska konvertera. Exempel på detta:
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
Om du trycker på enter igen får vi en webbadress som vi måste öppna i ett nytt fönster för att starta processen.
Konverterar... Nu måste vi bara vänta på att den blir klar och ta en titt på konverteringarna för att se om det finns något att polera och polera upp.
Fördelar med SEO och prestanda Det finns fortfarande många människor som är lojala mot minimalismen i den klassiska redigeraren , men Gutenberg, om än i en desperat långsam takt, har förbättrats mycket sedan den släpptes. Att använda det har redan fler fördelar än nackdelar.
Fördelar med SEO: Förvänta dig inte att din webbplats ska toppa sökresultatlistan över en natt genom att göra den här konverteringen, men varje förbättring räknas.
Bättre struktur på innehållet: Med Gutenberg kan du skapa mer strukturerat innehåll med hjälp av block (stycken, rubriker, listor etc.). Det gör det lättare för sökmotorer att bättre förstå hierarkin och relevansen i innehållet. Optimering av rubriker (H1, H2, H3, etc.): Det är lättare att lägga till och hantera rubriker, vilket förbättrar läsbarheten och organiseringen av innehållet. Fler optimerade bilder: Gutenberg gör det möjligt att lägga till alt-attribut, titlar och beskrivningar direkt i bildblocken. Användning av specifika block för SEO: Om du använder plugins som Yoast SEO eller Rank Math erbjuder de specifika block för att förbättra SEO (t.ex. FAQ-block eller Schema Markup). Mer interaktivt innehåll: Interaktiva block (tabeller, knappar, dragspel) förbättrar användarupplevelsen och minskar avvisningsfrekvensen. Långa poster med många element som publiceras med den klassiska editorn tenderar att ha en hög CLS och är också långsammare, vilket gör att de indexeras sämre eller tappar positionering. Fördelar med prestanda: Renare och lättare kod: Gutenberg genererar renare och mer semantisk HTML, vilket minskar sidstorleken och förbättrar laddningstiderna. Förutbetald inbetalning av resurser: Vissa block (t.ex. bilder) tillåter latent laddning inbyggt. Mindre beroende av kortkoder: Gutenberg gör att många kortkoder kan ersättas med mer effektiva inbyggda block. Optimering av synligt innehåll (above the fold): Det gör det enkelt att skapa optimerat innehåll för den synliga delen av sidan utan att skrolla. Färre plugins behövs: Minska plugin-belastningen genom att integrera funktionalitet som kolumner, tabeller eller knappar. Ytterligare fördelar:
Bättre redigeringsupplevelse: Det ger en modernare och mer intuitiv redigeringsupplevelse. Kompatibilitet med moderna teman och plugins: Många teman och plugins är redan optimerade för Gutenberg.
Förlagets framtid.
Här är jag inte så säker. Gutenberg är den (enda) framtiden för WordPress , även om jag inte tror så mycket på FSE (Full Site Editing) eftersom inte alla mallar är FSE och många av de mest populära mallarna inte har släppt FSE-versioner. Dessutom använder personalen fortfarande Elementor eller Bricks som byggare eller GenerateBlocks och/eller Kadence, som stödblock.