Ако блогът ви е на няколко години и в определен момент сте преминали към редактора Гутенберг, оставяйки всички стари публикации, публикувани в класическия формат на редактора, може би ще искате да ги конвертирате сега в блокове Гутенберг наведнъж.
Тази миграция може да донесе някои ползи за SEO и производителността. Те са обяснени в края на тази публикация.
Превръщане в блокове
Единственият приличен плъгин, който остава за улесняване на това преобразуване, е Convert To Blocks. Просто го инсталирайте. Тя няма настройки или област за администриране, нито пък се нуждае от такива.
Сега, когато отворите списъка с вписвания, вдясно от заглавието ще откриете нова колона, която ви казва дали вписването е публикувано с помощта на класическия редактор или на блоковия редактор Гутенберг. Липсва обаче начин за тяхното сортиране.

Това не е толкова голямо, защото може да се направи с функция, която ще добави колона вдясно, показваща "Класически" или "Гутенберг" към всяка публикация. Нещо като това:
// 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');
Интересното при плъгина е, че той конвертира "в движение". Това означава, че ако редактирате някоя публикация, тя автоматично ще се конвертира в Gutenberg, когато отворите редактора. Ако нещо се обърка, можете да го видите и да излезете, без да запазвате, като отхвърлите промените, за да редактирате това, което подозирате, че е причинило грешката при конвертирането, и да опитате отново.
Това е добре за конвертиране на няколко десетки публикации. Работи много добре и успешно конвертира почти всички публикации, на които го тествах. Convert to Blocks предупреждава, че по подразбиране няма да конвертира вашите потребителски блокове.
Групово или пакетно преобразуване
Но какво да правите, ако имате стотици или хиляди публикации за конвертиране, какъвто беше моят случай? Тук се появява най-полезната функция на плъгина. Тя позволява масово конвертиране с помощта на WP-CLI. Ако вече знаете как да използвате WP-CLI, можете да прескочите тази част, а ако не знаете, можете да отидете на тази връзка.
На страницата им в GitHub можете да намерите списъка с команди, които можете да използвате.
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.
Ако имате споделен хостинг или просто не искате да забавяте скоростта на зареждане заради високата консумация на процесора при конвертирането (имайте предвид, че то не само конвертира, но и запазва/публикува всички публикации една по една), ви съветвам да го правите на порции.
Избрах опцията за конвертиране на определен брой публикации чрез добавяне на блокове от около 100 идентификатора във всяка партида.
Знаем как да видим идентификатора на дадена публикация, защото в изданието той се появява в URL адреса, но сега трябва да извлечем всички идентификатори на публикациите, публикувани с класическия редактор, разделени със запетая без интервали.
Имам и функция за това.
// 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.
И ето какво ще получите (*в преработката добавих, че включвам и цифрата за общата сума).

Сега можете да изберете колкото искате идентификатори и да конвертирате на партиди, както желаете.
Тъй като LucusHost има инсталиран WP-CLI, от контролния панел имам готов терминал, за да му дам тръстика.
Той се отваря и се свързва с главния път на вашата инсталация на WP.
cd public_html/staging
Enter
Накрая въвеждаме командата си с идентификаторите на публикациите, които ще конвертираме. Пример:
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
Повторното натискане на бутона Enter ще ни даде URL адрес, който ще трябва да отворим в нов прозорец, за да започнем процеса.
Преобразуване на...

Сега просто трябва да изчакаме да бъде завършен и да разгледаме конверсиите, за да видим дали има нещо, което да доусъвършенстваме и полираме.
SEO и ползи за производителността
Все още има много хора, които са верни на минимализма на класическия редактор, но Gutenberg, макар и с отчайващо бавни темпове, се е подобрил много след пускането си. Използването му вече има повече предимства, отколкото недостатъци.
Ползи от SEO:
Не очаквайте сайтът ви да заеме първо място в списъка с резултати от търсенето за една нощ, но всяко подобрение се натрупва.
- По-добра структура на съдържанието:
- Gutenberg ви позволява да създавате по-структурирано съдържание с помощта на блокове (параграфи, заглавия, списъци и др.).
- Това улеснява търсачките да разберат по-добре йерархията и релевантността на съдържанието.
- Оптимизиране на заглавията (H1, H2, H3 и др.):
- По-лесно е да добавяте и управлявате заглавия, което подобрява четливостта и организацията на съдържанието.
- Повече оптимизирани изображения:
- Gutenberg позволява добавянето на alt атрибути, заглавия и описания директно към блоковете с изображения.
- Използване на специфични блокове за SEO:
- Ако използвате плъгини като Yoast SEO или Rank Math, те предлагат специфични блокове за подобряване на SEO (напр. блокове за често задавани въпроси или Schema Markup).
- Повече интерактивно съдържание:
- Интерактивните блокове (таблици, бутони, акордеони) подобряват потребителското изживяване и намаляват процента на отпадане.
- Дългите статии с много елементи, публикувани с класическия редактор, обикновено имат висок CLS и също така са по-бавни, така че се индексират по-зле или губят позициониране.
Предимства на изпълнението:
- По-чист и по-лек код:
- Gutenberg генерира по-чист и семантичен HTML, като намалява размера на страницата и подобрява времето за зареждане.
- Отсрочено натоварване на ресурси:
- Някои блокове (например изображения) позволяват мързеливо зареждане в естествен вид.
- По-малко разчитате на кратките кодове:
- Gutenberg позволява много шорткъти да бъдат заменени с по-ефективни местни блокове.
- Оптимизиране на видимото съдържание (над сгъвката):
- Това улеснява създаването на оптимизирано съдържание за видимата част на страницата, без да се налага скролиране.
- Необходими са по-малко плъгини:
- Намалете натоварването на плъгина, като интегрирате функционалност като колони, таблици или бутони.
Допълнителни ползи:
- По-добро изживяване при редактиране:
- Той предлага по-модерно и интуитивно редактиране.
- Съвместимост с модерни теми и плъгини:
- Много теми и плъгини вече са оптимизирани за Gutenberg.
Бъдещето на издателството.
Тук не съм толкова сигурен. Гутенберг е (единственото) бъдеще на WordPress, макар че не мисля, че е толкова много за FSE (Full Site Editing), защото не всички шаблони са FSE, а много от най-популярните шаблони не са пуснали FSE версии. Също така, служителите все още използват Elementor или Bricks като конструктор или GenerateBlocks и/или Kadence, като поддържащи блокове.