Blogunuz birkaç yıllıksa ve belirli bir noktada Gutenberg düzenleyiciye geçtiyseniz, klasik düzenleyici biçiminde yayınlanan tüm eski gönderileri bıraktıysanız, bunları şimdi tek seferde Gutenberg bloklarına dönüştürmek isteyebilirsiniz.
Bu geçişi yapmak bazı SEO ve performans avantajları sağlayabilir. Bunlar bu yazının sonunda açıklanmaktadır.
Bloklara Dönüştür Bu dönüşümü kolaylaştırmak için geriye kalan tek düzgün eklenti Convert To Blocks . Sadece yükleyin. Herhangi bir ayarı veya yönetici alanı yoktur ve buna ihtiyacı da yoktur.
Artık girişlerin listesini açtığınızda, başlığın sağında girişin Klasik Düzenleyici mi yoksa Gutenberg Blok Düzenleyici kullanılarak mı yayınlandığını gösteren yeni bir sütun bulacaksınız. Ancak, bunları sıralamak için bir yol eksikliği var.
Bu o kadar da harika değil çünkü bu, her gönderiye sağda "Klasik" veya "Gutenberg" i gösteren bir sütun ekleyecek bir işlevle yapılabilir. Bunun gibi bir şey:
// 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');
Eklentiyle ilgili ilginç olan şey, "anında" dönüştürme yapmasıdır. Bu, herhangi bir yazıyı düzenlediğinizde, editörü açtığınızda otomatik olarak Gutenberg'e dönüşeceği anlamına gelir. Bir şeyler ters giderse, bunu görebilir ve kaydetmeden çıkabilir, dönüşüm hatasına neden olduğundan şüphelendiğiniz şeyi düzenlemek için değişiklikleri atabilir ve tekrar deneyebilirsiniz.
Bu, birkaç düzine gönderiyi dönüştürmek için gayet iyi. Çok iyi çalışıyor ve test ettiğim neredeyse tüm gönderileri başarıyla dönüştürüyor. Convert to Blocks , varsayılan olarak özel bloklarınızı dönüştürmeyeceği konusunda uyarıyor.
Toplu veya toplu dönüştürme Peki ya benim durumumda olduğu gibi dönüştürülecek yüzlerce ya da binlerce gönderiniz varsa? İşte bu noktada eklentinin en kullanışlı özelliği devreye giriyor. WP-CLI kullanarak toplu dönüştürmeye izin verir. WP-CLI'yi nasıl kullanacağınızı zaten biliyorsanız, bu kısmı atlayabilirsiniz ve bilmiyorsanız, bu bağlantıya gidebilirsiniz.
GitHub sayfalarında kullanabileceğiniz komutların listesini bulabilirsiniz.
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.
Paylaşımlı bir hosting'iniz varsa veya dönüştürme işleminin yüksek CPU kullanımı nedeniyle yükleme hızını yavaşlatmak istemiyorsanız (yalnızca dönüştürmediğini, aynı zamanda tüm gönderileri tek tek kaydetmesi / yayınlaması gerektiğini unutmayın), bunu toplu olarak yapmanızı tavsiye ederim.
Her partide yaklaşık 100 ID'lik bloklar ekleyerek belirli sayıda gönderiyi dönüştürme seçeneğini seçtim.
Bir gönderinin kimliğini nasıl göreceğimizi biliyoruz çünkü sürümde URL'de görünüyor, ancak şimdi klasik düzenleyici ile yayınlanan gönderilerin tüm kimliklerini boşluksuz virgülle ayırarak çıkarmamız gerekiyor.
Bunun için de bir fonksiyonum var.
// 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.
Ve alacağınız şey budur (* revizyonda toplam tutar için rakamı da ekledim).
Artık istediğiniz kadar ID seçebilir ve dilediğiniz gibi toplu olarak dönüştürebilirsiniz.
LucusHost 'ta WP-CLI yüklü olduğundan, cPanel'den ona baston vermek için terminal hazır.
Açılır ve WP kurulumunuzun kök yoluna bağlanır.
cd public_html/staging
Enter
Son olarak komutumuzu dönüştüreceğimiz gönderilerin ID'leri ile birlikte yazıyoruz. Örnek:
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
Tekrar enter tuşuna basıldığında, işlemi başlatmak için yeni bir pencerede açmamız gereken bir url verilecektir.
Dönüştürme... Şimdi sadece bitmesini beklememiz ve cilalanıp parlatılacak bir şey olup olmadığını görmek için dönüşümlere bir göz atmamız gerekiyor.
Klasik editörün minimalizmine hala sadık olan pek çok insan var, ancak Gutenberg, umutsuzca yavaş bir hızda da olsa, piyasaya sürüldüğünden bu yana çok gelişti. Kullanmanın şimdiden dezavantajlarından çok avantajları var.
SEO'nun Faydaları: Bu dönüşümü yaparak sitenizin bir gecede arama sonuçları listesinde üst sıralara çıkmasını beklemeyin, ancak her iyileştirme eklenir.
İçeriğin daha iyi yapılandırılması: Gutenberg, blokları (paragraflar, başlıklar, listeler vb.) kullanarak daha yapılandırılmış içerik oluşturmanıza olanak tanır. Arama motorlarının içeriğin hiyerarşisini ve alaka düzeyini daha iyi anlamasını kolaylaştırır. Başlıkların optimizasyonu (H1, H2, H3, vb.): Başlık eklemek ve yönetmek daha kolaydır, içeriğin okunabilirliğini ve organizasyonunu geliştirir. Daha optimize edilmiş görüntüler: Gutenberg, alt niteliklerin, başlıkların ve açıklamaların doğrudan görsel bloklarına eklenmesine olanak tanır. SEO için belirli blokların kullanımı: Yoast SEO veya Rank Math gibi eklentiler kullanıyorsanız, SEO'yu geliştirmek için belirli bloklar sunarlar (örneğin SSS blokları veya Schema Markup). Daha fazla interaktif içerik: Etkileşimli bloklar (tablolar, düğmeler, akordeonlar) kullanıcı deneyimini iyileştirir ve hemen çıkma oranını azaltır. Klasik editörle yayınlanan çok sayıda öğe içeren uzun girişler yüksek CLS'ye sahip olma eğilimindedir ve ayrıca daha yavaştır, bu nedenle daha kötü indekslenir veya konumlarını kaybederler. Daha temiz ve daha hafif kod: Gutenberg daha temiz, daha semantik HTML üreterek sayfa boyutunu küçültüyor ve yükleme sürelerini iyileştiriyor. Kaynakların ertelenmiş yüklenmesi: Bazı bloklar (resimler gibi) yerel olarak tembel yüklemeye izin verir. Kısa kodlara daha az bağımlılık: Gutenberg, birçok kısa kodun daha verimli yerel bloklarla değiştirilmesine olanak tanır. Görünür içeriğin optimizasyonu (katlamanın üstünde): Kaydırma yapmadan sayfanın görünen kısmı için optimize edilmiş içerik oluşturmayı kolaylaştırır. Daha az eklenti gerekir: Sütunlar, tablolar veya düğmeler gibi işlevleri entegre ederek eklenti yükünü azaltın. Ek avantajlar:
Daha iyi düzenleme deneyimi: Daha modern ve sezgisel bir düzenleme deneyimi sunuyor. Modern temalar ve eklentilerle uyumluluk: Birçok tema ve eklenti zaten Gutenberg için optimize edilmiştir.
Yayıncının geleceği.
Burada o kadar emin değilim. Gutenberg WordPress'in (tek) geleceğidir, ancak FSE 'nin (Tam Site Düzenleme) çok fazla olduğunu düşünmüyorum çünkü tüm şablonlar FSE değildir ve en popüler şablonların çoğu FSE sürümlerini yayınlamamıştır. Ayrıca, personel hala oluşturucu olarak Elementor veya Bricks veya destek blokları olarak GenerateBlocks ve/veya Kadence kullanıyor.