Hvis din blog er et par år gammel, og du på et tidspunkt skiftede til Gutenberg-editoren og efterlod alle de gamle indlæg i det klassiske editorformat, kan det være en god idé at konvertere dem til Gutenberg-blokke på én gang.
Denne migrering kan give nogle SEO- og performancefordele. Disse forklares i slutningen af dette indlæg.
Konverter til blokke Det eneste ordentlige plug-in, der er tilbage til at lette denne konvertering, er Convert To Blocks . Du skal bare installere det. Det har ingen indstillinger eller admin-område, og det har heller ikke brug for det.
Når du nu åbner listen over indlæg, finder du en ny kolonne til højre for titlen, som fortæller dig, om indlægget blev udgivet med Classic Editor eller Gutenberg Block Editor. Der mangler dog en måde at sortere dem på.
Det er ikke så godt, fordi det kan gøres med en funktion, der tilføjer en kolonne til højre, der viser "Classic" eller "Gutenberg" til hvert indlæg. Noget i stil med dette:
// 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 interessante ved pluginet er, at det konverterer "on the fly". Det betyder, at hvis du redigerer et indlæg, vil det automatisk blive konverteret til Gutenberg, når du åbner editoren. Hvis noget går galt, vil du kunne se det og afslutte uden at gemme, kassere ændringerne for at redigere det, du har mistanke om forårsagede konverteringsfejlen, og prøve igen.
Dette er fint til konvertering af et par dusin indlæg. Den fungerer rigtig godt og konverterer næsten alle de indlæg, jeg testede den på. Convert to Blocks advarer om, at den som standard ikke vil konvertere dine brugerdefinerede blokke.
Masse- eller batchkonvertering Men hvad nu, hvis du har hundredvis eller tusindvis af indlæg, som i mit tilfælde, der skal konverteres? Det er her, den mest nyttige funktion i pluginet kommer ind i billedet. Det giver mulighed for massekonvertering ved hjælp af WP-CLI . Hvis du allerede ved, hvordan du bruger WP-CLI, kan du springe denne del over, og hvis du ikke gør, kan du gå til dette link .
På deres GitHub-side kan du finde en liste over de kommandoer , du kan bruge.
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.
Hvis du har en delt hosting eller bare ikke ønsker at sænke indlæsningshastigheden på grund af det høje CPU-forbrug ved konverteringen (husk, at den ikke kun konverterer, den skal også gemme/udgive alle indlæggene et efter et), råder jeg dig til at gøre det i portioner.
Jeg valgte at konvertere et bestemt antal indlæg ved at tilføje blokke med ca. 100 ID'er i hver batch.
Vi ved, hvordan vi kan se ID'et for et indlæg, fordi det i udgaven vises i URL'en, men nu skal vi udtrække alle ID'erne for de indlæg, der er udgivet med den klassiske editor, adskilt af et komma uden mellemrum.
Jeg har også en funktion til 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.
Og dette er, hvad du får (*i revisionen har jeg tilføjet, at jeg også inkluderer tallet for det samlede beløb).
Nu kan du vælge så mange ID'er, du vil, og konvertere i grupper, som du ønsker.
Da LucusHost har WP-CLI installeret, har jeg fra cPanel terminalen klar til at give ham stokken.
Den åbner og opretter forbindelse til rodstien i din WP-installation.
cd public_html/staging
Enter
Til sidst skriver vi vores kommando med ID'erne på de indlæg, vi vil konvertere. Eksempel:
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
Ved at trykke på enter igen får vi en url, som vi skal åbne i et nyt vindue for at starte processen.
Konvertering... Nu skal vi bare vente på, at den bliver færdig, og kigge på konverteringerne for at se, om der er noget, der skal pudses af og finpudses.
Der er stadig mange, der er loyale over for minimalismen i den klassiske editor , men Gutenberg har forbedret sig meget siden udgivelsen, om end i et desperat langsomt tempo. Der er allerede flere fordele end ulemper ved at bruge den.
Fordele ved SEO: Du skal ikke forvente, at dit website kommer til at ligge øverst på listen over søgeresultater fra den ene dag til den anden ved at foretage denne konvertering, men hver eneste forbedring tæller.
Bedre struktur på indholdet: Gutenberg giver dig mulighed for at skabe mere struktureret indhold ved hjælp af blokke (afsnit, overskrifter, lister osv.). Det gør det lettere for søgemaskinerne at forstå hierarkiet og relevansen af indholdet. Optimering af overskrifter (H1, H2, H3 osv.): Det er lettere at tilføje og administrere overskrifter, hvilket forbedrer læsbarheden og organiseringen af indholdet. Flere optimerede billeder: Gutenberg gør det muligt at tilføje alt-attributter, titler og beskrivelser direkte til billedblokke. Brug af specifikke blokke til SEO: Hvis du bruger plugins som Yoast SEO eller Rank Math , tilbyder de specifikke blokke til at forbedre SEO (f.eks. FAQ-blokke eller Schema Markup). Mere interaktivt indhold: Interaktive blokke (tabeller, knapper, harmonikaer) forbedrer brugeroplevelsen og reducerer afvisningsprocenten. Lange opslag med mange elementer udgivet med den klassiske editor har en tendens til at have en høj CLS og er også langsommere, så de indekseres dårligere eller mister positionering. Fordele ved ydeevne: Renere og lettere kode: Gutenberg genererer renere, mere semantisk HTML, hvilket reducerer sidestørrelsen og forbedrer indlæsningstiderne. Udskudt indlæsning af ressourcer: Nogle blokke (f.eks. billeder) tillader lazy loading i sig selv. Mindre afhængighed af kortkoder: Gutenberg gør det muligt at erstatte mange kortkoder med mere effektive indbyggede blokke. Optimering af synligt indhold (over folden): Det gør det nemt at skabe optimeret indhold til den synlige del af siden uden at scrolle. Færre plugins er nødvendige: Reducer plugin-belastningen ved at integrere funktionalitet som kolonner, tabeller eller knapper. Yderligere fordele:
Bedre redigeringsoplevelse: Det giver en mere moderne og intuitiv redigeringsoplevelse. Kompatibilitet med moderne temaer og plugins: Mange temaer og plugins er allerede optimeret til Gutenberg.
Forlagets fremtid.
Her er jeg ikke så sikker. Gutenberg er den (eneste) fremtid for WordPress, selvom jeg ikke tror så meget på FSE (Full Site Editing), fordi ikke alle skabeloner er FSE, og mange af de mest populære skabeloner har ikke udgivet FSE-versioner. Desuden bruger personalet stadig Elementor eller Bricks som bygherre eller GenerateBlocks og/eller Kadence som supportblokke.