Dacă blogul dvs. este vechi de câțiva ani și la un moment dat ați trecut la editorul Gutenberg, lăsând toate postările vechi publicate în formatul editorului clasic, este posibil să doriți să le convertiți acum în blocuri Gutenberg dintr-o singură dată.
Efectuarea acestei migrări poate oferi unele beneficii SEO și de performanță. Acestea sunt explicate la sfârșitul acestei postări.
Conversie în blocuri Singurul plug-in decent rămas pentru a facilita această conversie este Convert To Blocks . Doar instalați-l. Nu are setări sau zonă de administrare, și nici nu are nevoie de așa ceva.
Acum, când deschideți lista de intrări, veți găsi o nouă coloană în partea dreaptă a titlului care vă spune dacă intrarea a fost publicată utilizând Editorul clasic sau Editorul de blocuri Gutenberg. Cu toate acestea, lipsește o modalitate de a le sorta.
Nu este atât de grozav, deoarece acest lucru se poate face cu o funcție care va adăuga o coloană în dreapta care să arate "Clasic" sau "Gutenberg" pentru fiecare post. Ceva de genul acesta:
// 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');
Partea interesantă a pluginului este că acesta convertește "din mers". Acest lucru înseamnă că, dacă editați orice post, acesta se va converti automat la Gutenberg atunci când deschideți editorul. Dacă ceva nu merge bine, puteți vedea și ieși fără a salva, eliminând modificările pentru a edita ceea ce bănuiți că a cauzat eroarea de conversie și încercați din nou.
Acest lucru este bun pentru a converti câteva zeci de posturi. Funcționează foarte bine și convertește cu succes aproape toate postările pe care le-am testat. Convert to Blocks avertizează că, în mod implicit, nu va converti blocurile dvs. personalizate.
Conversie în masă sau pe loturi Dar ce se întâmplă dacă aveți sute sau mii, cum a fost cazul meu, de posturi de convertit? Aici intervine cea mai utilă caracteristică a pluginului. Aceasta permite conversia în masă utilizând WP-CLI . Dacă știți deja cum să utilizați WP-CLI, puteți sări peste această parte, iar dacă nu știți, puteți merge la acest link .
Pe pagina lor GitHub puteți găsi lista de comenzi pe care le puteți utiliza.
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.
Dacă aveți o găzduire partajată sau pur și simplu nu doriți să încetiniți viteza de încărcare din cauza utilizării ridicate a CPU pentru conversie (rețineți că nu doar convertește, ci trebuie să și salveze/publice toate postările unul câte unul), vă sfătuiesc să o faceți în loturi.
Am ales opțiunea de a converti un anumit număr de posturi prin adăugarea de blocuri de aproximativ 100 de ID-uri în fiecare lot.
Știm cum să vedem ID-ul unei postări, deoarece în ediție acesta apare în URL, dar acum trebuie să extragem toate ID-urile postărilor publicate cu editorul clasic, separate printr-o virgulă fără spații.
Am și o funcție pentru asta.
// 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.
Și iată ce veți primi (* în revizuire am adăugat că am inclus și cifra pentru suma totală).
Acum puteți selecta oricâte ID-uri doriți și puteți converti în loturi după cum doriți.
Deoarece LucusHost are instalat WP-CLI, din cPanel am terminalul pregătit pentru a-i da baston.
Acesta se deschide și se conectează la calea rădăcină a instalării WP.
cd public_html/staging
Enter
În final, introducem comanda noastră cu ID-urile posturilor pe care urmează să le convertim. Exemplu:
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
Apăsând Enter din nou, vom primi un URL pe care va trebui să îl deschidem într-o fereastră nouă pentru a începe procesul.
Conversia... Acum trebuie doar să așteptăm să fie terminat și să aruncăm o privire la conversii pentru a vedea dacă există ceva de șlefuit și lustruit.
Există încă o mulțime de oameni loiali minimalismului editorului clasic , dar Gutenberg, deși într-un ritm disperat de lent, s-a îmbunătățit mult de la lansarea sa. Utilizarea sa are deja mai multe beneficii decât dezavantaje.
Beneficiile SEO: Nu vă așteptați ca site-ul dvs. să ajungă în fruntea listei de rezultate ale căutării peste noapte prin efectuarea acestei conversii, dar fiecare îmbunătățire se adaugă.
O structură mai bună a conținutului: Gutenberg vă permite să creați conținut mai structurat utilizând blocuri (paragrafe, titluri, liste etc.). Motoarele de căutare înțeleg mai ușor ierarhia și relevanța conținutului. Optimizarea titlurilor (H1, H2, H3, etc.): Este mai ușor să adăugați și să gestionați titlurile, îmbunătățind lizibilitatea și organizarea conținutului. Mai multe imagini optimizate: Gutenberg permite ca atributele alt, titlurile și descrierile să fie adăugate direct la blocurile de imagini. Utilizarea de blocuri specifice pentru SEO: Dacă utilizați pluginuri precum Yoast SEO sau Rank Math , acestea oferă blocuri specifice pentru îmbunătățirea SEO (de exemplu, blocuri FAQ sau Schema Markup). Conținut mai interactiv: Blocurile interactive (tabele, butoane, acordeoane) îmbunătățesc experiența utilizatorului și reduc rata de respingere. Articolele lungi cu multe elemente publicate cu editorul clasic au tendința de a avea un CLS ridicat și sunt, de asemenea, mai lente, astfel încât acestea se indexează mai prost sau își pierd poziționarea. Cod mai curat și mai ușor: Gutenberg generează HTML mai curat, mai semantic, reducând dimensiunea paginii și îmbunătățind timpii de încărcare. Încărcarea amânată a resurselor: Unele blocuri (cum ar fi imaginile) permit încărcarea leneșă în mod nativ. Mai puțină dependență de codurile scurte: Gutenberg permite înlocuirea multor coduri scurte cu blocuri native mai eficiente. Optimizarea conținutului vizibil (above the fold): Aceasta facilitează crearea de conținut optimizat pentru partea vizibilă a paginii, fără derulare. Mai puține pluginuri necesare: Reduceți încărcarea plugin-urilor prin integrarea unor funcționalități precum coloane, tabele sau butoane. Beneficii suplimentare:
O experiență de editare mai bună: Acesta oferă o experiență de editare mai modernă și mai intuitivă. Compatibilitate cu teme și pluginuri moderne: Multe teme și pluginuri sunt deja optimizate pentru Gutenberg.
Viitorul editorului.
Aici nu sunt atât de sigur. Gutenberg este (singurul) viitor al WordPress, deși nu cred că atât de mult FSE (Full Site Editing), deoarece nu toate template-urile sunt FSE și multe dintre cele mai populare template-uri nu au lansat versiuni FSE. De asemenea, personalul încă folosește Elementor sau Bricks ca un constructor sau GenerateBlocks și / sau Kadence, ca blocuri de sprijin.