Si votre blog a quelques années et qu'à un certain moment vous êtes passé à l'éditeur Gutenberg, laissant tous ces anciens articles publiés au format de l'éditeur classique, vous voudrez peut-être les convertir maintenant en blocs Gutenberg en une seule fois.
Cette migration peut offrir des avantages en termes de référencement et de performances. Ceux-ci sont expliqués à la fin de cet article.
Convertir en blocs Le seul plug-in décent qui reste pour faciliter cette conversion est Convert To Blocks . Il suffit de l'installer. Il n'a pas de paramètres ni de zone d'administration, et n'en a pas besoin.
Désormais, lorsque vous ouvrez la liste des entrées, vous trouverez une nouvelle colonne à droite du titre qui vous indique si l'entrée a été publiée à l'aide de l'Éditeur classique ou de l'Éditeur de blocs de Gutenberg. Cependant, il n'y a pas de moyen de les trier.
Ce n'est pas si génial car cela peut être fait avec une fonction qui ajoutera une colonne sur la droite montrant "Classic" ou "Gutenberg" à chaque article. Quelque chose comme ça :
// 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');
Ce qui est intéressant avec ce plugin, c'est qu'il convertit "à la volée". Cela signifie que si vous modifiez un article, il sera automatiquement converti en Gutenberg lorsque vous ouvrirez l'éditeur. Si quelque chose ne va pas, vous pouvez le voir et quitter sans sauvegarder, en rejetant les modifications pour éditer ce que vous soupçonnez être à l'origine de l'erreur de conversion et réessayer.
C'est parfait pour convertir quelques dizaines d'articles. Il fonctionne très bien et convertit avec succès presque tous les articles sur lesquels je l'ai testé. Convert to Blocks prévient que, par défaut, il ne convertira pas vos blocs personnalisés.
Conversion en masse ou par lots Mais qu'en est-il si vous avez des centaines ou des milliers, comme c'était mon cas, d'articles à convertir ? C'est là que la fonctionnalité la plus utile du plugin entre en jeu. Il permet une conversion en masse en utilisant WP-CLI . Si vous savez déjà comment utiliser WP-CLI, vous pouvez sauter cette partie et si vous ne le savez pas, vous pouvez aller sur ce lien .
Sur leur page GitHub, vous trouverez la liste des commandes que vous pouvez utiliser.
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.
Si vous avez un hébergement partagé ou si vous ne voulez pas ralentir la vitesse de chargement à cause de l'utilisation élevée de l'unité centrale pour la conversion (gardez à l'esprit qu'elle ne fait pas que convertir, elle doit aussi sauvegarder/publier tous les messages un par un), je vous conseille de le faire par lots.
J'ai choisi l'option de convertir un certain nombre de messages en ajoutant des blocs d'environ 100 ID dans chaque lot.
Nous savons comment voir l'ID d'un billet parce que dans l'édition il apparaît dans l'URL, mais maintenant nous devons extraire tous les ID des billets publiés avec l'éditeur classique séparés par une virgule sans espace.
J'ai également une fonction pour cela.
// 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.
Et voici ce que vous obtiendrez (*dans la révision, j'ai ajouté que j'incluais également le chiffre du montant total).
Vous pouvez désormais sélectionner autant d'identifiants que vous le souhaitez et les convertir par lots.
Comme LucusHost a installé WP-CLI, depuis cPanel j'ai le terminal prêt à lui donner la canne.
Il s'ouvre et se connecte au chemin racine de votre installation WP.
cd public_html/staging
Enter
Enfin, nous saisissons notre commande avec les ID des messages que nous allons convertir. Exemple :
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
En appuyant à nouveau sur la touche "Entrée", vous obtiendrez une adresse URL que vous devrez ouvrir dans une nouvelle fenêtre pour lancer le processus.
Convertir... Il ne nous reste plus qu'à attendre qu'il soit terminé et à jeter un coup d'œil aux conversions pour voir s'il y a quelque chose à polir et à peaufiner.
Il y a encore beaucoup de gens fidèles au minimalisme de l'éditeur classique , mais Gutenberg, bien qu'à un rythme désespérément lent, s'est beaucoup amélioré depuis sa sortie. L'utiliser présente déjà plus d'avantages que d'inconvénients.
Avantages du référencement : Ne vous attendez pas à ce que votre site soit en tête de liste des résultats de recherche du jour au lendemain en effectuant cette conversion, mais chaque amélioration s'accumule.
Meilleure structure du contenu : Gutenberg permet de créer des contenus plus structurés à l'aide de blocs (paragraphes, titres, listes, etc.). Il permet aux moteurs de recherche de mieux comprendre la hiérarchie et la pertinence du contenu. Optimisation des titres (H1, H2, H3, etc.) : Il est plus facile d'ajouter et de gérer des titres, ce qui améliore la lisibilité et l'organisation du contenu. Des images plus optimisées : Gutenberg permet d'ajouter des attributs alt, des titres et des descriptions directement aux blocs d'images. Utilisation de blocs spécifiques pour le référencement : Si vous utilisez des plugins comme Yoast SEO ou Rank Math , ils proposent des blocs spécifiques pour améliorer le référencement (par exemple, des blocs FAQ ou Schema Markup). Plus de contenu interactif : Les blocs interactifs (tableaux, boutons, accordéons) améliorent l'expérience de l'utilisateur et réduisent le taux de rebond. Les entrées longues avec de nombreux éléments publiées avec l'éditeur classique ont tendance à avoir un CLS élevé et sont également plus lentes, de sorte qu'elles sont moins bien indexées ou perdent leur positionnement. Un code plus propre et plus léger : Gutenberg génère un code HTML plus propre et plus sémantique, réduisant la taille des pages et améliorant les temps de chargement. Chargement différé des ressources : Certains blocs (tels que les images) permettent un chargement paresseux en mode natif. Moins de dépendance à l'égard des codes courts : Gutenberg permet de remplacer de nombreux shortcodes par des blocs natifs plus efficaces. Optimisation du contenu visible (au-dessus du pli) : Il facilite la création d'un contenu optimisé pour la partie visible de la page, sans défilement. Moins de plugins nécessaires : Réduisez la charge des plugins en intégrant des fonctionnalités telles que des colonnes, des tableaux ou des boutons. Avantages supplémentaires :
Meilleure expérience d'édition : Il offre une expérience d'édition plus moderne et plus intuitive. Compatibilité avec les thèmes et les plugins modernes : De nombreux thèmes et plugins sont déjà optimisés pour Gutenberg.
Avenir de l'éditeur.
Ici, je n'en suis pas si sûr. Gutenberg est le (seul) avenir de WordPress, même si je ne pense pas tellement au FSE (Full Site Editing) parce que tous les templates ne sont pas FSE et que beaucoup des templates les plus populaires n'ont pas sorti de versions FSE. De plus, le personnel utilise toujours Elementor ou Bricks comme constructeur ou GenerateBlocks et/ou Kadence, comme blocs de support.