Ak je váš blog starý niekoľko rokov a v určitom okamihu ste prešli na editor Gutenberg, pričom ste všetky staré príspevky publikovali v klasickom formáte editora, možno ich budete chcieť teraz jedným ťahom previesť do blokov Gutenberg.
Táto migrácia môže priniesť určité výhody pre SEO a výkon. Tie sú vysvetlené na konci tohto príspevku.
Previesť na bloky Jediný slušný zásuvný modul na uľahčenie tejto konverzie je Convert To Blocks . Stačí ho nainštalovať. Nemá žiadne nastavenia ani administrátorskú oblasť, ani ich nepotrebuje.
Keď teraz otvoríte zoznam záznamov, vpravo od názvu nájdete nový stĺpec, v ktorom sa dozviete, či bol záznam uverejnený pomocou klasického editora alebo blokového editora Gutenberg. Chýba však spôsob, ako ich zoradiť.
Nie je to tak skvelé, pretože to možno urobiť pomocou funkcie, ktorá pridá stĺpec na pravej strane zobrazujúci "Klasický" alebo "Gutenberg" ku každému príspevku. Niečo také:
// 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');
Zaujímavosťou tohto pluginu je, že konvertuje "za chodu". To znamená, že ak upravíte akýkoľvek príspevok, po otvorení editora sa automaticky skonvertuje na Gutenberg. Ak sa niečo pokazí, budete to môcť vidieť a ukončiť bez uloženia, zahodiť zmeny a upraviť to, o čom máte podozrenie, že spôsobilo chybu konverzie, a skúsiť to znova.
To je v poriadku pri konverzii niekoľkých desiatok príspevkov. Funguje veľmi dobre a úspešne konvertuje takmer všetky príspevky, na ktorých som ho testoval. Convert to Blocks upozorňuje, že v predvolenom nastavení neprevedie vaše vlastné bloky.
Hromadná alebo dávková konverzia Ale čo ak máte stovky alebo tisíce príspevkov na konverziu, ako to bolo v mojom prípade? Tu prichádza na rad najužitočnejšia funkcia tohto doplnku. Umožňuje hromadnú konverziu pomocou WP-CLI . Ak už viete, ako používať WP-CLI, môžete túto časť preskočiť, a ak nie, môžete prejsť na tento odkaz .
Na stránke GitHub nájdete zoznam príkazov, ktoré môžete použiť.
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.
Ak máte zdieľaný hosting alebo jednoducho nechcete spomaliť rýchlosť načítavania kvôli vysokému využitiu procesora pri konverzii (nezabúdajte, že nejde len o konverziu, ale aj o uloženie/publikovanie všetkých príspevkov po jednom), odporúčam vám, aby ste to robili po dávkach.
Vybral som možnosť konverzie určitého počtu príspevkov pridaním blokov s približne 100 ID v každej dávke.
Vieme, ako vidieť ID príspevku, pretože v edícii sa zobrazuje v adrese URL, ale teraz potrebujeme získať všetky ID príspevkov uverejnených v klasickom editore oddelené čiarkou bez medzier.
Mám na to aj funkciu.
// 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 toto je to, čo dostanete (*v revízii som doplnil, že uvádzam aj údaj o celkovej sume).
Teraz môžete vybrať ľubovoľný počet ID a konvertovať ich v dávkach podľa potreby.
Ako LucusHost má WP-CLI nainštalovaný, z cPanel mám terminál pripravený dať mu trstinu.
Otvorí sa a pripojí ku koreňovej ceste vašej inštalácie WP.
cd public_html/staging
Enter
Nakoniec zadáme príkaz s ID príspevkov, ktoré chceme previesť. Prí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
Opätovným stlačením klávesu enter sa zobrazí url adresa, ktorú budeme musieť otvoriť v novom okne, aby sme mohli začať proces.
Konverzia... Teraz už len musíme počkať, kým bude hotová, a pozrieť sa na konverzie, aby sme zistili, či je čo vylepšovať a zdokonaľovať.
Výhody SEO a výkonu Mnohí ľudia sú stále verní minimalizmu klasického editora , ale Gutenberg sa od svojho vydania výrazne zlepšil, aj keď zúfalo pomalým tempom. Jeho používanie už má viac výhod ako nevýhod.
Výhody SEO: Neočakávajte, že sa vaša stránka vďaka tejto konverzii dostane zo dňa na deň na prvé miesto vo výsledkoch vyhľadávania, ale každé zlepšenie sa sčítava.
Lepšia štruktúra obsahu: Gutenberg umožňuje vytvárať štruktúrovanejší obsah pomocou blokov (odseky, nadpisy, zoznamy atď.). Vyhľadávače tak môžu lepšie pochopiť hierarchiu a relevantnosť obsahu. Optimalizácia nadpisov (H1, H2, H3 atď.): Ľahšie sa pridávajú a spravujú nadpisy, čím sa zlepšuje čitateľnosť a organizácia obsahu. Viac optimalizovaných obrázkov: Gutenberg umožňuje pridávať atribúty alt, názvy a popisy priamo do blokov obrázkov. Používanie špecifických blokov pre SEO: Ak používate pluginy ako Yoast SEO alebo Rank Math , ponúkajú špecifické bloky na zlepšenie SEO (napr. bloky FAQ alebo Schema Markup). Viac interaktívneho obsahu: Interaktívne bloky (tabuľky, tlačidlá, akordeóny) zlepšujú používateľský zážitok a znižujú mieru odchodov. Dlhé záznamy s mnohými prvkami publikované v klasickom editore majú tendenciu mať vysoký CLS a sú tiež pomalšie, takže sa horšie indexujú alebo strácajú pozíciu. Výhody výkonu: Čistejší a ľahší kód: Gutenberg generuje čistejšie a sémantickejšie HTML, čím znižuje veľkosť stránky a zlepšuje čas načítania. Odložené nakladanie zdrojov: Niektoré bloky (napríklad obrázky) umožňujú prirodzené lenivé načítanie. Menšia závislosť na skratkách: Gutenberg umožňuje nahradiť mnohé skratky efektívnejšími natívnymi blokmi. Optimalizácia viditeľného obsahu (nad záhybom): Umožňuje ľahko vytvoriť optimalizovaný obsah pre viditeľnú časť stránky bez posúvania. Potrebujete menej zásuvných modulov: Znížte zaťaženie zásuvného modulu integráciou funkcií, ako sú stĺpce, tabuľky alebo tlačidlá. Ďalšie výhody:
Lepšie skúsenosti s úpravami: Ponúka modernejšie a intuitívnejšie možnosti úprav. Kompatibilita s modernými témami a pluginmi: Mnohé témy a doplnky sú už optimalizované pre Gutenberg.
Budúcnosť vydavateľstva.
Tu si nie som taká istá. Gutenberg je (jediná) budúcnosť WordPress, aj keď si myslím, že nie až tak FSE (Full Site Editing), pretože nie všetky šablóny sú FSE a mnohé z najpopulárnejších šablón nevydali FSE verzie. Takisto zamestnanci stále používajú Elementor alebo Bricks ako builder alebo GenerateBlocks a/alebo Kadence, ako podporné bloky.