اذهب إلى المحتوى

تساعد التحديثات التلقائية مدير الموقع في الحفاظ على أمنه خصوصًا أن قسمًا كبيرًا من هذه التحديثات يتضمن إصلاح مشاكل أو سد ثغرات أمنية في نواة ووردبريس أو الإضافات أو القوالب. سوف نتحدث عن الأنواع المختلفة للتحديثات التلقائية وكيفية ضبطها والتحكم بها.

أنواع التحديثات في ووردبريس

أضيفت التحديثات التلقائية في الخلفية في إصدار ووردبريس 3.7 لتوفير أمان أعلى وجعل عملية التحديث أسهل. التحديثات التلقائية مفعلة افتراضيًا في ووردبريس في معظم المواقع وفي حالات خاصة يمكن تحديث الإضافات والقوالب تلقائيًا أيضًا وبالنسبة لملفات الترجمة فهي تُحدث تلقائيًا.

توجد أربعة أنواع من التحديثات التلقائية في الخلفية ضمن ووردبريس:

  • تحديثات النواة.
  • تحديثات الإضافة.
  • تحديثات القالب.
  • تحديثات ملف الترجمة.

تُقسم تحديثات النواة لثلاثة أقسام فرعية:

  1. تحديثات تطويرات النواة Core development المعروفة باسم bleeding edge.
  2. تحديثات نواة فرعية Minor core مثل الصيانة والإصدارات الأمنية.
  3. تحديثات نواة رئيسية Major core مثل الإصدارات الرئيسية.

كانت تحديثات النواة الفرعية وملفات الترجمة مفعلةً تلقائيًا قبل إصدار ووردبريس 5.6 وبدءًا من هذا الإصدار أصبحت جميع تحديثات النواة الفرعية والرئيسية لأي موقع جديد مُفعلةً تلقائيًا.

ضبط إعدادات تحديث ووردبريس

يمكن ضبط التحديثات التلقائية في ووردبريس باستخدام إحدى الطريقتين: تعريف ثوابت ضمن ملف wp-config.php أو بإضافة مرشحات باستخدام إضافة.

ضبط التحديثات باستخدام ملف wp-config.php

يمكن تعطيل التحديثات التلقائية باستخدام ملف wp-config.php كما يمكن تعطيل تحديثات النواة أو ضبطها بناءًا على نوع التحديث.

ثابت لتعطيل جميع التحديثات

اتخذ مطورو النواة قرارًا بتفعيل التحديثات التلقائية للإصدارات الفرعية وملفات الترجمة افتراضيًا في ووردبريس، وهذا لضمان أن يبقى موقعك بأحدث إصدار وآمنًا من الاختراقات لذلك لا ينصح بتعطيل التحديثات أبدًا.

يجب عليك إضافة السطر التالي لتعطيل جميع أنواع التحديثات التلقائية سواء المرتبطة بالنواة أو غيرها لملف wp-config.php:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

ثابت لضبط تحديثات النواة

يمكنك استخدام الثابت WP_AUTO_UPDATE_CORE لتفعيل التحديثات التلقائية بغرض التطوير أو للإصدارات الرئيسية حيث يُسمح لك تعريف هذا الثابت بأحد ثلاثة طرق تُستخدم لتفعيل أو تعطيل جميع أنواع التحديثات المرتبطة بالنواة أو تفعيل التحديثات الفرعية لها فقط.

define( 'WP_AUTO_UPDATE_CORE', true );

يُمكن تعريف الثابت السابق بثلاثة طرق مُختلفة ينتج عن كل منها سلوك مختلف هي:

  • تعني القيمة true تفعيل التحديثات الرئيسية والفرعية والمرتبطة بالتطوير للنواة.
  • تعني القيمة false تعطيل التحديثات الرئيسية والفرعية والمرتبطة بالتطوير للنواة.
  • تعني القيمة minor تفعيل التحديثات الفرعية للنواة وتعطيل التحديثات الرئيسية والمرتبطة بالتطوير.
اقتباس

ملاحظة: فقط المواقع التي تعمل على نسخة تطويرية من ووردبريس سوف تتلقى التحديثات المرتبطة بالتطوير حيث تكون القيمة الافتراضية للثابت WP_AUTO_UPDATE_CORE لهذه المواقع هي true بينما للمواقع الأخرى تكون minor.

إن القيمة الافتراضية للثابت WP_AUTO_UPDATE_CORE لتثبيت ووردبريس بدءًا من الإصدار 5.6 هي true.

ضبط التحديثات باستخدام المرشحات

يسمح استخدام المرشحات ضبط التحديثات التلقائية بدقة، وأفضل مكان لوضع هذه المرشحات هو ضمن مجلد الإضافات الواجب استخدامها Must-use plugins (تُعرف أيضًا بالاسم mu-plugins وهي إضافات تثبت في مجلد خاص داخل المجلد content وتفعّل تلقائيًا في كل المواقع).

لا تستخدم add_filter()‎ مباشرةً ضمن ملف wp-config.php لأن ووردبريس لم ينتهي من تحميل ملفاته إذ يمكن أن يتعارض مع تطبيقات أخرى مثل WP-CLI.

تعطيل كل التحديثات

تستطيع أيضًا باستخدام المرشح التالي تعطيل جميع التحديثات التلقائية.

add_filter( 'automatic_updater_disabled', '__return_true' );

تحديث نواة ووردبريس

استخدم المرشح التالي لتفعيل تحديثات النواة فقط.

add_filter( 'auto_update_core', '__return_true' );

ربما تريد بدلًا من تعطيل أو تفعيل جميع أنواع تحديثات النواة اختيار ما تريد تفعيله أو تعطيله منها. ولتحقيق ذلك تستطيع استخدام المرشحات التالية:

  • allow_dev_auto_core_updates.
  • allow_minor_auto_core_updates.
  • allow_major_auto_core_updates.

توجد دالتان مبنيتان ضمن ووردبريس تسمحان لك بتفعيل أو تعطيل أنواع محددة من تحديثات النواة باستخدام بضع سطور برمجية. هاتان الدالتنا هما الدالة __return_true والدالة __return_false. إليك بعض الأمثلة لكيفية استخدام المرشحات.

لتفعيل التحديثات كل نوع على حدا (لتعطيلها استخدم false بدلًا من true).

add_filter( 'allow_dev_auto_core_updates', '__return_true' );           // Enable development updates
add_filter( 'allow_minor_auto_core_updates', '__return_true' );         // Enable minor updates
add_filter( 'allow_major_auto_core_updates', '__return_true' );         // Enable major updates

لتفعيل التحديثات التلقائية للمطورين حتى عند وجود مجلد VCS توجد ملفات (‎.get و ‎.hg و ‎.svn وغيرها) في مسار ووردبريس أو أي مسار أب استخدم له التالي:

add_filter( 'automatic_updates_is_vcs_checkout', '__return_false', 1 );

تحديث إضافات وقوالب ووردبريس

يمكن أن تُنفَذ التحديثات التلقائية للإضافات والقوالب في حالات خاصة حُددت باستجابة WordPress.org API الذي يتحكم به الفريق الأمني لووردبريس ويستعمله من أجل سد الثغرات الأمنية. ولتفعيل أو تعطيل التحديثات في جميع الحالات تستطيع استخدام المُرشح auto_update_$type حيث يجب تحديد النوع ‎$type بتبديله إلى كلمة plugin للإضافات أو theme للقوالب.

التحديث التلقائي لجميع الإضافات:

add_filter( 'auto_update_plugin', '__return_true' );

التحديث التلقائي لجميع القوالب:

add_filter( 'auto_update_theme', '__return_true' );

تستطيع استخدام ‎__return_false بدلًا من ‎__return_true لتعطيل التحديثات التلقائية للإضافات والقوالب وحتى تعطيل التحديثات المرسلة من الفريق الأمني لووردبريس.

يسمح لك المُرشح auto_update_$type بالتحكم بدقة بالتحديثات حيث تستطيع تمرير ما تريد تحديثه للمرشح باستخدام الاسم. وإذا أردت تفعيل التحديثات التلقائية لإضافات معينة عندها تستطيع استخدام شيفرة مشابهة للشيفرة البرمجية التالية:

function auto_update_specific_plugins ( $update, $item ) {
    // Array of plugin slugs to always auto-update
    $plugins = array (
        'akismet',
        'buddypress',
    );
    if ( in_array( $item->slug, $plugins ) ) {
         // Always update plugins in this array
        return true;
    } else {
        // Else, use the normal API response to decide whether to update or not
        return $update;
    }
}
add_filter( 'auto_update_plugin', 'auto_update_specific_plugins', 10, 2 );

تحديث ملفات الترجمة في ووردبريس

إن تحديثات ملفات الترجمة مفعلة افتراضيًا في ووردبريس لذلك لتعطيل تحديثات هذه الملفات استخدم السطر التالي:

add_filter( 'auto_update_translation', '__return_false' );

تعطيل تحديثات رسائل البريد الإلكتروني

يمكن تعطيل تنبيهات عملية التحديث عبر البريد الإلكتروني عبر المرشح التالي:

// Disable update emails
add_filter( 'auto_core_update_send_email', '__return_false' );

يُمكن استخدام هذا المُرشح للتلاعب بتحديثات البريد الإلكتروني حسب المعاملات التالية:

  • ‎$send: هل تريد إرسال تنبيهات عن حالة عملية التحديث؟ true نعم أو false لا.
  • ‎$type: البريد المرسل لحالة عملية التحديث هل هو success (نجاح عملية التحديث) أو fail (فشل عملية التحديث) أو critical (حدث أمر حرج في عملية التحديث).
  • ‎$core_update: نوع عملية التحديث التي جرى تنفيذها (أو محاولة تنفيذها).
  • ‎$result: نتيجة عملية التحديث core_update ويمكن أن تكون WP_Error.
/* @param bool   $send     Whether to send the email. Default true.
@param string $type        The type of email to send. Can be one of 'success', 'fail', 'critical'.
@param object $core_update The update offer that was attempted.
@param mixed  $result      The result for the core update. Can be WP_Error.
*/
apply_filters( 'auto_core_update_send_email', true, $type, $core_update, $result );

ترجمة -وبتصرف- للمقال Configuring Automatic Background Updates من موقع ووردبريس.

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...