عند إنشاء موقع لأحد العملاء بواسطة ووردبريس، أكيد أننا نحتاج لتنصيب بعض الإضافات الضرورية وفي حالة تعطيلها يمكن للموقع ان يظهر بشكل غير ملائم أو يفقد بعض مميزاته، خصوصا إن لم يكن للعميل دراية جيدة بطريقة عمل نظام الإضافات في ووردبريس.
على سبيل المثال إضافات كنظام التعليقات Disqus، إضافة Seo Yoast، إضافة Woocommerce، إضافة Contact Form 7، إضافة Google XML Sitemaps … هي إضافات جد أساسية وتعطيلها قد يغير كثيرا في شكل الموقع وأداؤه وفي بعض الحالات يمكن للموقع ان يتوقف عن العمل كليا.
حسنا، يمكنك إعطاء صاحب الموقع دور أقل من مدير لكن هذا ليس بالحل الجيد والاحترافي ويمكن لصاحب الموقع ألاّ يتفهم ذلك، ما قد يولد شعور بعدم الراحة وقلة الثقة … الحل البديل هو إخفاء الإضافات الحساسة من لوحة تحكم ووردبريس (بإذن من صاحب الموقع طبعاً) لكيلا يتم تعطيلها عن طريق الخطأ، الإضافات المخفية لن يستطيع أحد الوصول إليها من لوحة التحكم ولا حتى لغرض تحديثها.
فقط عليك إضافة هذا الكود إلى إضافتك الخاصة أو إلى ملف functions.php
للقالب المفعَّل.
/**
* How to Hide Specific plugin from installed plugin list.
*
* @return void
*/
function sb_hide_plugins() {
global $wp_list_table;
$plugins_to_hide = array(
'contact-form-7/wp-contact-form-7.php',
'disqus-comment-system/disqus.php',
'google-sitemap-generator/sitemap.php',
'wordpress-seo/wp-seo.php',
'woocommerce/woocommerce.php',
);
$plugins_installed = $wp_list_table->items;
foreach ( $plugins_installed as $key => $val ) {
if ( in_array( $key, $plugins_to_hide, true ) ) {
unset(
$wp_list_table->items[ $key ]
);
}
}
}
add_action( 'pre_current_active_plugins', 'sb_hide_plugins' );
كما هو واضح في الكود، فقط عليك وضع مسار الملف الرئيسي للإضافة التي تريد إخفائها كعنصر للمصفوفة $plugins_to_hide
، في هذا المثال قمنا بإخفاء إضافة Contact Form 7, إضافة Google XML Sitemaps, إضافة Wordpress Seo، إضافة Disqus وإضافة Woocommerce، يمكنك التعديل على هذا الكود لإخفاء أي إضافة من اختيارك.
بعد حفظ التغييرات، الإضافات المخفية ستبقى خياراتها على نفس الحالة التي كانت عليها قبل إضافة الكود لكن ستختفي من على لائحة الإضافات.
طيب، رغم كل ما قمنا به حتى الآن مازال بوسع عميلنا الكريم تحرير ملفات الإضافات المخفية عن طريق المحرر المدمج في ووردبريس، بل أيضا يمكنه تنصيب إضافات جديدة وتعطيل وحذف الإضافات الغير مخفية … يمكننا أن نكون أكثر حزما في الموضوع ونمنع العميل من عمل أي شيء يمكن أن يسبب له المشاكل ولنا ألم الرأس 😅
لمنع تحرير ملفات الإضافات والقوالب من لوحة تحكم ووردبريس فقط علينا تعريف الثابت DISALLOW_FILE_EDIT وإعطائه القيمة true، هكذا على سبيل المثال:
define( 'DISALLOW_FILE_EDIT', true );
لمنع تنصيب وتحديث وحذف الإضافات والقوالب من لوحة التحكم فقط علينا تعريب المتغير DISALLOW_FILE_MODS
وإعطاءه القيمة true
، هكذا على سبيل المثال:
define( 'DISALLOW_FILE_MODS', true );
كلا الثابتين يجب تعريفهما داخل ملف إعدادات ووردبريس wp-config.php
.
أتمنا أن أكون قد أوصلت الفكرة بشكل جيد وأن يتم استعمال هذا الشرح لمصلحة العميل وليس العكس.