Pokud je váš blog starý několik let a v určitém okamžiku jste přešli na editor Gutenberg a všechny staré příspěvky jste publikovali v klasickém formátu editoru, možná je budete chtít nyní převést do bloků Gutenberg najednou.
Tato migrace může přinést určité výhody pro SEO a výkon. Ty jsou vysvětleny na konci tohoto příspěvku.
Převést na Bloky Jediný slušný modul plug-in, který tento převod usnadňuje , je Convert To Blocks . Stačí jej nainstalovat. Nemá žádné nastavení ani administrátorskou oblast, ani je nepotřebuje.
Když nyní otevřete seznam záznamů, najdete napravo od názvu nový sloupec, který vám řekne, zda byl záznam zveřejněn pomocí klasického editoru nebo blokového editoru Gutenberg. Chybí však možnost jejich seřazení.
Není to tak skvělé, protože to lze provést pomocí funkce, která přidá sloupec vpravo zobrazující "Klasický" nebo "Gutenberg" ke každému příspěvku. Něco takového:
// 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');
Zajímavé na tomto pluginu je, že konvertuje "za běhu". To znamená, že pokud upravíte jakýkoli příspěvek, po otevření editoru se automaticky převede na Gutenberg. Pokud se něco pokazí, můžete to vidět a ukončit bez uložení, zahodit změny a upravit to, u čeho máte podezření, že způsobilo chybu převodu, a zkusit to znovu.
Pro převod několika desítek příspěvků je to v pořádku. Funguje velmi dobře a úspěšně převádí téměř všechny příspěvky, na kterých jsem ho testoval. Convert to Blocks varuje, že ve výchozím nastavení nepřevede vaše vlastní bloky.
Hromadná nebo dávková konverze Ale co když máte stovky nebo tisíce příspěvků, jako v mém případě, které je třeba převést? Zde přichází na řadu nejužitečnější funkce pluginu. Umožňuje hromadnou konverzi pomocí WP-CLI . Pokud již víte, jak používat WP-CLI, můžete tuto část přeskočit, a pokud ne, můžete přejít na tento odkaz .
Na jejich stránce GitHub najdete seznam příkazů, které můžete použít.
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.
Pokud máte sdílený hosting nebo prostě nechcete zpomalit rychlost načítání kvůli vysokému využití procesoru při převodu (nezapomeňte, že nejde jen o převod, ale také o uložení/publikování všech příspěvků po jednom), doporučuji vám, abyste to dělali po dávkách.
Zvolil jsem možnost převodu určitého počtu příspěvků přidáním bloků o 100 ID v každé dávce.
Víme, jak zjistit ID příspěvku, protože v editaci se objevuje v adrese URL, ale nyní potřebujeme získat všechna ID příspěvků publikovaných v klasickém editoru oddělená čárkou bez mezer.
K tomu mám také funkci.
// 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.
A tohle dostanete (*v revizi jsem doplnil, že uvádím i celkovou částku).
Nyní můžete vybrat libovolný počet ID a převádět je v dávkách podle potřeby.
Jak LucusHost má WP-CLI nainstalován, z cPanel mám terminál připraven dát mu hůl.
Otevře se a připojí ke kořenové cestě instalace WP.
cd public_html/staging
Enter
Nakonec zadáme příkaz s ID příspěvků, které chceme převést. Příklad:
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
Dalším stisknutím klávesy enter se zobrazí url adresa, kterou musíme otevřít v novém okně, abychom mohli zahájit proces.
Převod... Teď už jen musíme počkat, až bude hotová, a podívat se na konverze, jestli není co vylepšovat a dolaďovat.
SEO a výkonnostní výhody Mnoho lidí je stále věrných minimalismu klasického editoru , ale Gutenberg se od svého vydání hodně zlepšil, i když zoufale pomalým tempem. Jeho používání už má více výhod než nevýhod.
Výhody SEO: Neočekávejte, že se váš web díky této konverzi přes noc dostane na první místo ve výsledcích vyhledávání, ale každé zlepšení se sčítá.
Lepší struktura obsahu: Gutenberg umožňuje vytvářet strukturovanější obsah pomocí bloků (odstavce, nadpisy, seznamy atd.). Vyhledávačům to usnadňuje lepší pochopení hierarchie a relevance obsahu. Optimalizace nadpisů (H1, H2, H3 atd.): Je snazší přidávat a spravovat nadpisy, což zlepšuje čitelnost a uspořádání obsahu. Více optimalizovaných obrázků: Gutenberg umožňuje přidávat atributy alt, názvy a popisy přímo do bloků obrázků. Použití specifických bloků pro SEO: Pokud používáte pluginy jako Yoast SEO nebo Rank Math , nabízejí specifické bloky pro zlepšení SEO (např. bloky FAQ nebo Schema Markup). Další interaktivní obsah: Interaktivní bloky (tabulky, tlačítka, akordeony) zlepšují uživatelský zážitek a snižují míru odskočení. Dlouhé záznamy s mnoha prvky publikované v klasickém editoru mají tendenci mít vysoký CLS a jsou také pomalejší, takže se hůře indexují nebo ztrácejí pozici. Výhody výkonu: Čistší a lehčí kód: Gutenberg generuje čistší a sémantičtější HTML, čímž snižuje velikost stránky a zlepšuje dobu načítání. Odložené nakládání se zdroji: Některé bloky (například obrázky) umožňují líné načítání nativně. Menší závislost na zkratkách: Gutenberg umožňuje nahradit mnoho zkratek efektivnějšími nativními bloky. Optimalizace viditelného obsahu (nad záhybem): Umožňuje snadno vytvářet optimalizovaný obsah pro viditelnou část stránky bez nutnosti posouvání. Potřebujete méně zásuvných modulů: Snižte zatížení zásuvného modulu integrací funkcí, jako jsou sloupce, tabulky nebo tlačítka. Další výhody:
Lepší zkušenosti s úpravami: Nabízí modernější a intuitivnější editační prostředí. Kompatibilita s moderními tématy a pluginy: Mnoho témat a pluginů je již pro Gutenberg optimalizováno.
Budoucnost vydavatele.
Tady si nejsem tak jistý. Gutenberg je (jediná) budoucnost WordPressu, i když si myslím, že FSE (Full Site Editing) už tolik ne, protože ne všechny šablony jsou FSE a mnoho nejpopulárnějších šablon nevydalo FSE verze. Také zaměstnanci stále používají Elementor nebo Bricks jako builder nebo GenerateBlocks a/nebo Kadence, jako podpůrné bloky.