إذا كان عمر مدونتك بضع سنوات وفي مرحلة معينة قمتَ بالتبديل إلى محرِّر غوتنبرغ، تاركًا كل تلك المقالات القديمة المنشورة بتنسيق المحرِّر الكلاسيكي، فقد ترغب في تحويلها الآن إلى مكوِّنات غوتنبرغ دفعة واحدة.
يمكن أن يوفر القيام بهذا الترحيل بعض مزايا تحسين محركات البحث والأداء. يتم شرح ذلك في نهاية هذا المنشور.
التحويل إلى كتل المكوّن الإضافي الوحيد اللائق المتبقي لتسهيل هذا التحويل هو التحويل إلى كتل . ما عليك سوى تثبيته. لا يحتوي على أي إعدادات أو منطقة إدارية، ولا يحتاج إلى واحدة.
الآن، عندما تفتح قائمة الإدخالات، ستجد عمودًا جديدًا على يمين العنوان يخبرك ما إذا كان الإدخال قد نُشر باستخدام المحرِّر الكلاسيكي أو محرِّر مكوِّن غوتنبرغ. ومع ذلك، لا توجد طريقة لفرزها.
ليس الأمر بهذه الروعة لأنه يمكن القيام بذلك باستخدام وظيفة من شأنها أن تضيف عمودًا على اليمين يعرض "كلاسيكي" أو "غوتنبرغ" لكل مقالة. شيء من هذا القبيل:
// 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');
الشيء المثير للاهتمام في الإضافة هو أنها تقوم بالتحويل "سريعًا". هذا يعني أنك إذا قمت بتحرير أي منشور، فسيتم تحويله تلقائيًا إلى غوتنبرغ عندما تفتح المحرر. إذا حدث خطأ ما ستتمكن من رؤيته والخروج دون حفظ، وتجاهل التغييرات لتعديل ما تشك في أنه سبب خطأ التحويل والمحاولة مرة أخرى.
هذا جيد لتحويل بضع عشرات من المنشورات. إنه يعمل بشكل جيد للغاية وينجح في تحويل جميع المقالات التي اختبرته عليها تقريبًا. يحذر التحويل إلى كتل من أنه لن يحول كتلك المخصصة بشكل افتراضي.
التحويل بالجملة أو على دفعات ولكن ماذا لو كان لديك مئات أو آلاف المنشورات، كما في حالتي، لتحويلها؟ هنا يأتي دور الميزة الأكثر فائدة للملحق. فهي تسمح بالتحويل الجماعي باستخدام 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-CLI، من cPanel لديّ محطة طرفية جاهزة لإعطائه قصب السكر.
يفتح ويتصل بالمسار الجذر لتثبيت 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
الضغط على زر الإدخال مرة أخرى سيعطينا عنوان URL الذي سيتعين علينا فتحه في نافذة جديدة لبدء العملية.
تحويل... الآن علينا فقط انتظار الانتهاء منه وإلقاء نظرة على التحويلات لمعرفة ما إذا كان هناك أي شيء يمكن تلميعه وصقله.
مزايا تحسين محركات البحث والأداء لا يزال هناك الكثير من الأشخاص المخلصين لبساطة المحرر الكلاسيكي، لكن Gutenberg، وإن كان بوتيرة بطيئة للغاية، تحسن كثيرًا منذ إصداره. استخدامه بالفعل له فوائد أكثر من عيوبه.
فوائد تحسين محركات البحث SEO: لا تتوقع أن يتصدر موقعك قائمة نتائج البحث بين عشية وضحاها من خلال إجراء هذا التحويل، ولكن كل تحسين يُضاف إلى قائمة نتائج البحث.
بنية أفضل للمحتوى: يتيح لك Gutenberg إنشاء محتوى أكثر تنظيماً باستخدام المكوِّنات (الفقرات، والعناوين، والقوائم، وما إلى ذلك). فهو يسهّل على محركات البحث فهم التسلسل الهرمي للمحتوى وأهميته بشكل أفضل. تحسين العناوين (H1، H2، H3، إلخ): من الأسهل إضافة العناوين وإدارتها، مما يحسن من سهولة قراءة المحتوى وتنظيمه. المزيد من الصور المحسّنة: يسمح Gutenberg بإضافة السمات البديلة والعناوين والأوصاف مباشرةً إلى مكوِّنات الصور. استخدام كتل محددة لتحسين محركات البحث: إذا كنتَ تستخدم إضافات مثل Yoast SEO أو Rank Math، فإنها تقدم مكوِّنات محدَّدة لتحسين تحسين محركات البحث (مثل مكوِّنات الأسئلة الشائعة أو ترميز المخطط). المزيد من المحتوى التفاعلي: تعمل الكتل التفاعلية (الجداول والأزرار والأكورديونات) على تحسين تجربة المستخدم وتقليل معدل الارتداد. تميل الإدخالات الطويلة التي تحتوي على العديد من العناصر المنشورة باستخدام المحرر الكلاسيكي إلى أن تكون ذات مستوى عالٍ من CLS وتكون أبطأ أيضًا، لذا فإنها تفهرس بشكل أسوأ أو تفقد موقعها. مزايا الأداء: كود أنظف وأخف وزناً: يُنشئ Gutenberg HTML أنظف وأكثر دلالة، مما يقلل من حجم الصفحة ويحسِّن من أوقات التحميل. التحميل المؤجل للموارد: تسمح بعض المكوِّنات (مثل الصور) بالتحميل البطيء أصلاً. اعتماد أقل على الرموز القصيرة: يسمح غوتنبرغ باستبدال العديد من الأكواد القصيرة بكتل أصلية أكثر كفاءة. تحسين المحتوى المرئي (فوق الطيّة): يجعل من السهل إنشاء محتوى مُحسَّن للجزء المرئي من الصفحة دون تمرير. الحاجة إلى عدد أقل من الإضافات: تقليل تحميل المكوّن الإضافي من خلال دمج وظائف مثل الأعمدة أو الجداول أو الأزرار. مزايا إضافية:
تجربة تحرير أفضل: يوفر تجربة تحرير أكثر حداثة وسهولة. التوافق مع القوالب والإضافات الحديثة: العديد من القوالب والإضافات مُحسَّنة بالفعل لـ Gutenberg.
مستقبل الناشر
هنا أنا لست متأكدًا من ذلك. Gutenberg هو المستقبل (الوحيد) لـ WordPress، على الرغم من أنني لا أعتقد أن FSE (تحرير الموقع الكامل) لأن ليس كل القوالب هي FSE والعديد من القوالب الأكثر شعبية لم تصدر إصدارات FSE. أيضًا، لا يزال الموظفون يستخدمون Elementor أو Bricks كمنشئ أو GenerateBlocks و/أو Kadence، كقوالب دعم.