المحتوى عن 'wordpress'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • مقالات عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
    • Magento
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
  • HTML5
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • برمجة أندرويد
  • لغة R
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات عامّة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
  • مقالات عامّة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 62 نتائج

  1. برمجية ووردبريس هي واحدة من أشهر أنظمة إدارة المحتوى مفتوحة المصدر في العالم، وصحيحٌ أنَّ غرضها الأساسي هو إنشاء مدونات، لكنها تطورت على مرّ السنين لتصبح منصةً مرنةً لإنشاء مواقع الويب، ولا نستطيع أن ننكر مدى ثباتها وموثوقيتها التي تطورت خلال خمسة عشر عامًا، لكن ما تزال بعض المشكلات تظهر بين الفينة والأخرى. إذا حاولت فتح موقعك الذي يعتمد على ووردبريس ورأيت رسالةً تُشير إلى خطأ في قواعد البيانات “خطأ في إنشاء اتصال بقاعدة البيانات” (Error Establishing Database Connection)، فمن المرجح أن يكون السبب بين القائمة الآتية: انهارت قاعدة البيانات، ربما بسبب نفاد الذاكرة المتاحة للخادوم معلومات الوصول إلى قاعدة البيانات الموجودة في ضبط ووردبريس غير صحيحة حدث ضرر في جداول قاعدة بيانات ووردبريس لنناقش المشاكل السابقة كلًّا على حدة لنعرف إن كان هو السبب فيما أصاب موقعك، مع ذكر طريقة حلها. المتطلبات المسبقة يفترض هذا الدرس: أنَّك تستعمل ووردبريس على خادوم يمكنك الوصول إلى سطر أوامر وتستطيع تشغيل الأوامر فيه بامتيازات الجذر عبر الأداة sudo. تعمل قاعدة البيانات على خادوم ووردبريس نفسه (وهذا شائع في مواقع ووردبريس المستضافة ذاتيًا، لكنه ليس شائعًا في مواقع ووردبريس المستضافة على استضافة مشتركة). أنَّك تعرف اسم المستخدم الذي يملك وصولًا إلى قاعدة البيانات مع كلمة مروره، واسم قاعدة البيانات الخاصة بورردبريس. يجب أن توفِّر هذه المعلومات عند ضبطك لبرمجية ووردبريس ضبطًا مبدئيًا. الخطوة الأولى: التحقق من الذاكرة المتاحة على الخادوم أوّل خطوة لمعرفة سبب المشكلة هي تسجيل الدخول إلى الخادوم لمعرفة إذا كان سليمًا وأنَّ خدمة MySQL تعمل دون مشاكل. سجِّل دخولك إلى الخادوم عبر SSH، وتذكر أن تضع اسم المستخدم واسم النطاق الخاصين بك في الأمر الآتي: ssh sammy@your_server_ip ملاحظة: إذا كنتَ متأكدًا أنَّ معلومات الاتصال الخاصة بك صحيحة لكنك تواجه مشاكل في تسجيل الدخول، فقد يكون السبب هو نفاد الذاكرة في خادومك أو أنَّه تحت حِملٍ شديد؛ وقد يكون ذلك بسبب كمية كبيرة من البيانات المُرسَلة إلى موقعك، وهذا يُفسِّر سبب الخطأ الذي حدث في ووردبريس… قد تحتاج إلى إعادة تشغيل خادومك قبل أن تتمكن من تسجيل الدخول إليه. بعد أن سجلنا دخولنا بنجاح إلى الخادوم، فيمكننا التأكد أنَّ قواعد MySQL تعمل دون مشاكل: sudo netstat -plt يعرض الأمر netstat معلوماتٍ حول الاتصالات الشبكية في نظامنا، وطلبنا من الأمر السابق أسماء البرامج ‎-p التي تستمع إلى الاتصالات ‎-l على مقابس TCP ‏‎-t؛ عليك الآن البحث عن السطر الذي تُذكر خدمة mysqld فيه: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:mysql *:* LISTEN 1958/mysqld tcp 0 0 *:ssh *:* LISTEN 2205/sshd tcp 0 0 localhost:smtp *:* LISTEN 2361/master tcp6 0 0 [::]:http [::]:* LISTEN 16091/apache2 tcp6 0 0 [::]:ssh [::]:* LISTEN 2205/sshd tcp6 0 0 ip6-localhost:smtp [::]:* LISTEN 2361/master إذا كانت مخرجات الأمر السابق عندك مشابهةً لما سبق، فهذا يعني أنَّ خادوم MySQL يعمل ويستمع إلى الاتصالات القادمة؛ أما إذا لم ترَ خدمة MySQL مذكورةً في الناتج، فجرِّب تشغيلها يدويًا، وذلك باستعمال أمرٍ شبيهٍ بالأمر الآتي: sudo systemctl start mysql لاحظ أنَّ بعض توزيعات لينكس (وأشهرها CentOS) تستعمل mysqld بدلًا من mysql للإشارة إلى اسم الخدمة؛ لذا ضع الكلمة الملائمة لنظامك الذي تستعمله. يجب أن تبدأ خدمة MySQL الآن، وأعد تشغيل أمر netstat السابق للتأكد من ذلك، وابحث عن السطر الذي يحتوي على اسم خدمة MySQL. تحتاج قواعد بيانات MySQL وبرمجية ووردبريس إلى قدرٍ لا بأس به من الذاكرة لكي تعمل عملًا سليمًا؛ وإذا انهارت قواعد البيانات بسبب نفاد الذاكرة، فيجب أن نرى دليلًا على ذلك في سجل الأخطاء. لنلقِ نظرة: zgrep -a "allocate memory" /var/log/mysql/error.log* الأمر zgrep سيبحث في ملفات السجل، بما فيها ملفات السجل القديمة والتي ضُغِطَت لتوفير المساحة التخزينية؛ وحددنا في الأمر السابق أننا نبحث في أي سطر يحتوي على العبارة allocate memory في أي ملف error.log*‎ موجود في مجلد ‎/var/log/mysql/‎: 2017-04-11T17:38:22.604644Z 0 [ERROR] InnoDB: Cannot allocate memory for the buffer pool إذا رأيتَ سطرًا أو أكثر يشبه السطر السابق فهذا يعني أنَّ خادوم MySQL قد انهار بسبب عدم كفاية الذاكرة؛ وإذا وجدتَ سطرًا وحيدًا فقط فهذا يعني أنَّ الانهيار عَرَضي بسبب كمية مؤقتة كبيرة من البيانات، أما إذا كانت هنالك عدِّة أسطر تحوي الخطأ نفسه، فهذا يعني أنَّ الذاكرة الحالية لا تكفي خادومك. في كلا الحالتين السابقتين، الحل العملي لهذه المشكلة هو الانتقال إلى خادومٍ تتوافر فيه ذاكرة أكثر، والأمر بسيطٌ جدًا إذا كان خادومك مستضافًا على خدمةٍ سحابية، إذ تستطيع ترقية الخادوم دون انقطاع الخدمة لوقتٍ طويل. إذا لم تجد أيّة مخرجات بعد تنفيذ أمر zgrep السابق، فهذا يعني أنَّ الذاكرة تكفي خادومك، وإن بقي موقعك يُظهِر رسالة الخطأ، فانتقل إلى الخطوة التالية التي نلقي فيها نظرةً على ضبط ووردبريس ونتأكد أنَّ معلومات الدخول إلى قاعدة MySQL صحيحة. الخطوة الثانية: التحقق من معلومات الدخول إلى قاعدة البيانات إذا نقلتَ موقع ووردبريس إلى خادوم جديد أو إلى استضافة أخرى، فقد تحتاج إلى تحديث معلومات الاتصال بقاعدة البيانات، وهذه المعلومات مخزنة في ملف PHP على الخادوم باسم wp-config.php. لنعثر بدايةً على ملف wp-config.php: sudo find / -name "wp-config.php" الأمر السابق يبحث في كل النظام (بدءًا من المجلد الجذر /) عن أي ملف باسم wp-config.php، ثم سيعرض المسار الكامل للملف إن عُثِرَ عليه: /var/www/html/wp-config.php ملاحظة: إذا كنتَ تعلم مكان تثبيت برمجية ووردبريس، فيمكنك الانتقال إلى مسار تثبيتها مباشرةً وتخطي الخطوة السابقة لأنها تستهلك بعض الوقت. استعمل محرِّرك النصي المفضل لتعديل ملف الضبط، سنستعمل محرر nano في الأمر الآتي: sudo nano /var/www/html/wp-config.php ستشاهد أمامك ملفًا نصيًا مليئًا بخيارات الضبط مع بعض التعليقات التي تشرحها. لكنك ستجد قسمًا (في بداية الملف عادةً) فيه معلومات الاتصال إلى قاعدة البيانات: /** The name of the database for WordPress */ define('DB_NAME', 'database_name'); /** MySQL database username */ define('DB_USER', 'database_username'); /** MySQL database password */ define('DB_PASSWORD', 'database_password'); تأكد أن القيم الثلاث السابقة صحيحة بناءً على معلومات الاتصال المسجلة عندك؛ وإذا لم تكن صحيحةً فحدِّثها وفقًا لما تراه مناسبًا، ثم احفظ الملف واخرج من المحرر (بضغط Ctrl+o للحفظ ثم Ctrl+x للخروج، وذلك إذا كنتَ تستعمل محرر nano). حتى لو بدت لك معلومات الاتصال بقاعدة البيانات صحيحةً، فمن المفيد تجربة الاتصال إلى قاعدة البيانات من سطر الأوامر ليطمئن قلبك. انسخ المعلومات المذكورة في ملف الضبط السابق واستعملها في هذا الأمر: mysqlshow -u database_username -p عندما يُطلَب منك إدخال كلمة مرور فألصقها واضغط على زر Enter، وإن ظهر لك خطأ Access denied فهذا يعني أنَّ اسم المستخدم أو كلمة المرور خطأ، وإذا كانا صحيحين فسيعرض الأمر mysqlshow جميع قواعد البيانات التي يملك المستخدم وصولًا إليها: +--------------------+ | Databases | +--------------------+ | information_schema | | database_name | +--------------------+ تأكد أنَّ اسم إحدى قواعد البيانات يطابق تمامًا الاسم المذكور في ملف ضبط ووردبريس؛ وعندئذٍ ستعلم أنَّ ضبطك صحيح وأنَّ ووردبريس يجب أن تكون قادرةً على الاتصال بقاعدة البيانات بنجاح. ادخل إلى موقعك مجددًا لعل رسالة الخطأ تختفي، وإن بقيت موجودةً فلنحاول إصلاح قاعدة البيانات. الخطوة الثالثة: إصلاح قاعدة بيانات ووردبريس قد يحدث عطب في قاعدة بيانات ووردبريس في بعض الأحيان بسبب فشل الترقية أو انهيار قاعدة البيانات أو مشكلة في إحدى الإضافات، وقد تظهر هذه المشكلة على أنها خطأ في الاتصال بقاعدة البيانات، لذا إذا لم تكن المشكلة في خادوم MySQL ولا في ملف الضبط، فجرِّب إصلاح قاعدة البيانات. توفر ووردبريس أداةً مبنيةً داخلها لإصلاح قاعدة البيانات، وهي معطلة افتراضيًا لعدم وجود قيود مفروضة على من يستطيع الوصول إليها مما قد يسبب مشكلةً أمنيةً، لذا سنفعِّل هذه الميزة، ثم نُشغِّل أداة الإصلاح، ثم نعطلها. افتح ملف wp-config.php مرةً أخرى: sudo nano /var/www/html/wp-config.php ألصق ما يلي في سطرٍ جديد: define('WP_ALLOW_REPAIR', true); سيؤدي السطر السابق إلى تفعيل ميزة إصلاح قاعدة البيانات. احفظ الملف وأغلق المحرر النصي، وافتح العنوان الآتي في متصفحك، وتذكر أن تضع اسم النطاق الخاص بموقعك أو عنوان IP التابع له: http://www.example.com/wp-admin/maint/repair.php يجب أن تظهر صفحة الإصلاح: اضغط على زر «Repair Database» ويجب أن تنتقل إلى صفحة النتائج التي تستطع أن ترى فيها التحققات والإصلاحات التي تجريها ووردبريس في الوقت الحقيقي: بعد انتهاء هذه العملية، احرص على تعديل ملف wp-config.php وحذف السطر الذي أضفناه إليه آنفًا. هل لاحظت أيّة إصلاحات أجرتها الأداة؟ جرِّب الدخول إلى موقعك مجددًا وانظر هل اختفت رسالة الخطأ. إذا ظهرت مشاكل لا يمكن حلها فربما ستحتاج إلى استعادة قاعدة البيانات من نسخة احتياطية إذا توافرت عندك. إذا لم يُعثَر على مشاكل في قاعدة البيانات ولم تستطع أن تعرف ما أصل المشكلة، فمن المحتمل أن هنالك مشاكل أخرى لم تنتبه إليها. الخلاصة أغلبية أخطاء “خطأ في إنشاء اتصال بقاعدة البيانات” يمكن حلّها عبر اتباع الخطوات السابقة، لكن مع ذلك هنالك أخطاء أكثر تعقيدًا قد تظهر على شكل خطأ في الاتصال بقاعدة البيانات؛ لذا سأعرض لك قائمةً بالمقالات التي تساعدك في تَتَبُع وإصلاح مسبب المشكلة: أحد المسببات الشائعة للتراسل الكبير لموقع ووردبريس (وبالتالي انخفاض الأداء وحدوث أخطاء) هو هجمات brute-force ، وبالتالي يجب اتخاذ إجراءات للتخفيف من تأثيرها. يمكنك توفير بعض موارد الخادوم باستعمال التخزين المؤقت لصفحات ووردبريس؛ وهنالك عدد كبير من إضافات التخزين المؤقت البسيطة المتوافرة لها. ترجمة –وبتصرّف– للمقال How To Debug the Wordpress “Error Establishing Database Connection”‎ لصاحبه Brian Boucheron. حقوق الصورة البارزة محفوظة لـ Freepik
  2. تمهيد يعدّ ووردبريس أشهر نظام إدارة محتوى (CMS) موجود على الإنترنت، حيث تسمح بإنشاء مدونات ومواقع مرنة بسهولة، بالاعتماد على قواعد بيانات MySQL مع لغة PHP. أصبح ووردبريس منتشرًا انتشارًا واسعًا وهي خيارٌ ممتازٌ لإنشاء موقع إلكتروني بسرعة؛ إذ نستطيع إجراء أغلبية عمليات إدارة الموقع من لوحة التحكم الخاصة به. سنُركِّز في هذا الدرس على ضبط نسخة ووردبريس على خادوم LAMP (أي خادوم يستعمل نظام لينكس، مع خادوم وب Apache، قاعدة بيانات MySQL و لغة البرمجة PHP) على أوبنتو 16.04. المتطلبات المسبقة لكي تستطيع المتابعة مع هذا الدرس، فستحتاج وصولًا إلى خادوم أوبنتو 16.04. يجب عليك تنفيذ المهام الآتية قبل البدء باتباع تعليمات هذا الدرس: إنشاء مستخدم بصلاحيات sudo على الخادوم: إذ سنُطبِّق الأوامر المذكورة في هذا الدرس عبر مستخدمٍ ليس جذرًا لكن لديه امتيازات الجذر عبر الأمر sudo. يمكنك إنشاء مستخدم له امتيازات الجذر باستخدام الأمر sudo باتباع درس الإعداد الابتدائي لخادوم أوبنتو 14.04. تثبيت برمجيات LAMP: تحتاج ووردبريس إلى خادوم ويب وقاعدة بيانات ومُفسِّر PHP لكي تعمل عملًا سليمًا؛ وبالتالي إذا ثبَّتتَ برمجيات LAMP فستُحقق هذا المتطلب. اتبع التعليمات الموجودة في درس كيف تثبت حزم MySQL ،Apache ،Linux :LAMP و PHP على أوبنتو لتعلّم طريقة تثبيت وضبط تلك البرمجيات. تأمين الموقع باستخدام شهادة SSL: تقدّم ووردبريس محتوى ديناميكي وفيها خاصيات للاستيثاق من المستخدمين وتسجيل دخولهم. تسمح لنا تقنية TLS/SSL بتشفير المحتوى المقدَّم من موقعنا مما يعني أنَّ الاتصال أصبح آمنًا. إلا أنَّ الطريقة التي ستتبعها لضبط SSL تختلف فيما إذا كان لديك اسم نطاق لموقعك أم لا: إذا كان لديك اسم نطاق خاص بالموقع: أسهل طريقة لتشفير موقعك هي بالاستعانة بخدمة Let’s Encrypt والتي توفِّر شهادات مجانية وموثوقة. راجع الدرس تنصيب شهادة SSL مجانية عبر خدمة Let’sencrypt على خادوم لينكس لمزيدٍ من المعلومات. إذا لم يكن لديك اسم نطاق خاص بالموقع: وكنتَ تجرب ضبط ووردبريس للتعلّم أو لاستخدامك الشخصي، فيمكنك استخدام شهادة موقعة ذاتيًا. وهذا يوفِّر نوع التشفير نفسه، لكن دون التحقق من النطاق الخاص بك. راجع هذا الدرس لمزيدٍ من المعلومات حول ضبط الشهادات الموقعة ذاتيًا. إذا كانت المتطلبات المسبقة جاهزةً، فسجِّل دخولك إلى الخادوم عبر المستخدم الذي يملك امتيازات الجذر عبر الأمر sudo وتابع بقية هذا الدرس. الخطوة الأولى: إنشاء مستخدم وقاعدة بيانات MySQL لووردبريس أوّل خطوةٍ هي خطوةٌ تحضيريةٌ، إذ تستعمل ووردبريس قواعد MySQL لتخزين وإدارة معلومات الموقع والمستخدمين. ثبتنا مسبقًا قواعد بيانات MySQL على خادومنا، لكننا نحتاج إلى إنشاء قاعدة بيانات ومستخدم لكي تستعمله ووردبريس؛ وذلك بتسجيل الدخول بحساب root (حساب المدير) إلى خادوم MySQL بتنفيذ الأمر الآتي: mysql -u root -p ستُسأل عن كلمة المرور التي أدخلتها لحساب root عندما ثبّتتَ برمجية MySQL. علينا أولًا إنشاء قاعدة بيانات منفصلة لكي تستطيع ووردبريس التحكم بها كيفما تشاء؛ ويمكننا تسميتها بأيِّ اسمٍ يحلو لنا، لكننا سنستخدم الاسم wordpress في درسنا للسهولة. يمكنك إنشاء قاعدة بيانات في ووردبريس بكتابة تعليمة SQL الآتية: CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; ملاحظة: يجب أن تنتهي كل تعليمات MySQL بفاصلة منقوطة ;، لذا تأكد من وجودها إن واجهتَ أيّة مشكلات. علينا بعد ذلك إنشاء مستخدم MySQL منفصل يحق له التعامل مع قاعدة البيانات التي أنشأناها آنفًا فقط؛ فمن المستحسن إنشاء قواعد بيانات مع حسابات مستخدمين مرتبطة بها ذات غرضٍ وحيد، وذلك لتسهيل الإدارة وتحسين الأمان. سنستخدم الاسم wordpressuser في هذا الدرس، لكن استعمل أي اسم يحلو لك. سنستعمل الأمر الآتي لإنشاء هذا الحساب وضبط كلمة مرور خاصة به ومنحه وصولًا إلى قاعدة البيانات التي أنشأناه، تذكَّر أن تختار كلمة مرور قوية لمستخدم قواعد البيانات: GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; أصبح لدينا مستخدم وقاعدة بيانات خاصَين بووردبريس، علينا الآن تحديث جدول الامتيازات لكي يعتمد MySQL التغييرات الأخيرة التي أجريناها: FLUSH PRIVILEGES; يمكننا الخروج من سطر أوامر MySQL بكتابة: EXIT; الخطوة الثانية: تثبيت إضافات PHP عندما ضبطنا برمجيات LAMP ثبّتنا الحد الأدنى اللازم من وِحْدات PHP لكي تتواصل مع MySQL تواصلًا سليمًا؛ لكن ووردبريس والإضافات التابعة لها تستعمل وحدات PHP أخرى. يمكننا تنزيل وتثبيت أشهر وحدات PHP لاستعمالها مع ووردبريس بتنفيذ الأمرين الآتيين: sudo apt-get update sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc ملاحظة: لكل إضافة من إضافات ووردبريس متطلبات خاصة بها، وبعضها يستدعي تثبيت حزم PHP إضافية. راجع توثيق الإضافة لتعرف ما هي المتطلبات المسبقة التي تحتاج لها؛ والتي يمكن تثبيتها عبر apt-get (أو apt) إذا كانت متوافرة في المستودعات. علينا الآن إعادة تشغيل خادوم أباتشي لكي نستطيع استخدام الوحدات التي ثبتناها، يمكننا فعل ذلك بتنفيذ الأمر الآتي: sudo systemctl restart apache2 الخطوة الثالثة: تعديل ضبط أباتشي للسماح باستعمال ملفات ‎.htaccess ولتفعيل وحدة Rewrite علينا الآن إجراء تعديلات بسيطة على ضبط أباتشي؛ فاستعمال ملفات ‎.htaccess مُعطّلٌ حاليًا، لكن ووردبريس (وبعض إضافاتها) تستعمل هذه الملفات لإجراء تعديلات على سلوك خادوم الويب في بعض المجلدات. علينا أيضًا تفعيل وحدة mod_rewrite في أباتشي والتي سنحتاج لها لكي تعمل ميزة الروابط الدائمة (permalinks) في ووردبريس عملًا سليمًا. تفعيل ملفات ‎.htaccess افتح ملف ضبط أباتشي الأساسي لإجراء أوّل تعديل: sudo nano /etc/apache2/apache2.conf للسماح باستخدام ملفات ‎.htaccess فعلينا ضبط التعليمة AllowOverride ضمن كتلة Directory التي تُشير إلى جذر الموقع. أضف الأسطر الآتية في أسفل الملف: <Directory /var/www/html/> AllowOverride All </Directory> أنهينا تعديل هذا الملف، لذا احفظه وأغلقه. تفعيل وحدة Rewrite علينا الآن تفعيل وحدة mod_rewrite لكي نستطيع الاستفادة من ميزة الروابط الدائمة في ووردبريس: sudo a2enmod rewrite تفعيل التعديلات التي أجريناها قبل تطبيق التعديلات على الخادوم، علينا أن نحرص أننا لم نرتكب أيّ أخطاء في بنية التعليمات: sudo apache2ctl configtest من المفترض أن يكون الناتج شبيهًا بالرسالة الآتية: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK إذا أردت التخلص من أوّل سطر، فأضف التعليمة SeverName إلى ملف ‎/etc/apache2/apache2.conf التي تشير إلى اسم نطاق الخادوم أو إلى عنوان IP الخاص به، لكن اعلم أنَّ هذه الرسالة لا تؤثر على عمل موقعنا، فلطالما كان الناتج يحتوي على السطر Syntax OK سنستطيع أن نكمل عملية تفعيل التعديلات بإعادة تشغيل خادوم أباتشي: sudo systemctl restart apache2 الخطوة الرابعة: تنزيل ووردبريس بعد إكمالنا لضبط خادومنا، أصبحنا جاهزين لتنزيل وضبط ووردبريس. من المستحسن الحصول على آخر إصدار من ووردبريس من موقعها الرسمي وذلك حرصًا على الحصول على آخر التحديثات الأمنية. انتقل إلى مجلد تستطيع الكتابة عليه، ثم نزِّل الملف المضغوط من الإنترنت عبر كتابة الأمرين الآتيين: cd /tmp curl -O https://wordpress.org/latest.tar.gz استخرج محتويات الملف المضغوط: tar xzvf latest.tar.gz سننقل هذه الملفات إلى المجلد الجذر لموقعنا بعد لحظات، لكن قبل ذلك سنُنشِئ ملف ‎.htaccess فارغ ونضبط الأذونات الخاصة به لكي تتاح مستقبلًا لووردبريس لتستعملها. أنشِئ الملف واضبط أذوناته بتنفيذ الأمرين: touch /tmp/wordpress/.htaccess chmod 660 /tmp/wordpress/.htaccess سننسخ أيضًا الملف التي يحتوي على مثال عن ضبط ووردبريس إلى الملف الذي ستقرأه ووردبريس: cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php سنُنشِئ أيضًا مجلدًا باسم upgrade لكي لا تواجه ووردبريس مشاكل في الأذونات عندما تحاول تنزيل التحديثات من الإنترنت: mkdir /tmp/wordpress/wp-content/upgrade يمكننا الآن نسخ كامل محتويات المجلد إلى المجلد الجذر لموقعنا، وسنستخدم الخيار ‎-a لإبقاء الأذونات كما هي؛ وسنستخدم نقطة في نهاية مسار المجلد الذي سننسخه للإشارة إلى أننا نريد نسخ كل شيء في ذاك المجلد بما في ذلك المجلدات المخفية (مثل الملف ‎.htaccess الذي أنشأناها منذ قليل): sudo cp -a /tmp/wordpress/. /var/www/html الخطوة الخامسة: ضبط مجلد ووردبريس قبل أن نُشغِّل معالج التثبيت الخاص بووردبريس من المتصفح، علينا تعديل بعض الأشياء في مجلد ووردبريس. تعديل الملكية والأذونات أحد أهم الأمور التي علينا فعلها هو ضبط ملكية الملفات وأذوناتها، فسنحتاج إلى الكتابة إلى تلك الملفات كمستخدمٍ عادي، وعلينا السماح لخادوم الويب بالوصول إليها وتعديل ملفات ومجلدات معيّنة لكي تعمل ووردبريس كما ينبغي. سنبدأ بضبط ملكية كل الملفات الموجودة في جذر الموقع إلى المستخدم الحالي (الذي سنسميه sammy في هذا الدرس، لكن عليك تعديله ليُطابِق اسم المستخدم الذي تستعمله للوصول إلى امتيازات الجذر)، وسنضبط المجموعة المالكة إلى www-data: sudo chown -R sammy:www-data /var/www/html علينا الآن ضبط الأذن الخاص setgid على كل مجلد موجود ضمن مجلد الجذر للموقع، وهذا يؤدي إلى وراثة الملفات المُنشأة ضمن تلك المجلدات لمجموعة المجلد الأب (والتي ضبطناها إلى www-data) بدلًا من جعلها مملوكةً لمجموعة المستخدم المُنشِئ لها؛ وهذا يعني أننا لو أنشأنا ملفًا ضمن أحد تلك المجلدات باستخدام سطر الأوامر فسيملكه خادوم الويب (عبر المجموعة www-data). يمكننا ضبط الإذن setgid على كل مجلد من مجلدات ووردبريس بتنفيذ الأمر الآتي: sudo find /var/www/html -type d -exec chmod g+s {} \; هنالك أذونات أخرى علينا تعديلها؛ فعلينا إعطاء المجموعة المالكة إذن الكتابة إلى مجلد wp-content لكي نتمكن من تعديل القوالب والإضافات من واجهة الويب: sudo chmod g+w /var/www/html/wp-content وعلينا إعطاء خادوم الويب إذن الكتابة على جميع محتويات المجلدين themes و plugins كما يلي: sudo chmod -R g+w /var/www/html/wp-content/themes sudo chmod -R g+w /var/www/html/wp-content/plugins الأذونات الحالية مناسبة لأغلبية حالات الاستخدام، لكن قد تتطلّب بعض الإضافات تعديلاتٍ أخرى للأذونات. إعداد ملف ضبط ووردبريس سنحتاج الآن إلى إجراء بعض التعديلات على ملف ضبط ووردبريس الرئيسي. من أهم أولوياتنا هو تعديل بعض المفاتيح السرية لتوفير مزيد من الحماية لووردبريس. توفر لنا ووردبريس مولِّدًا لإنشاء هذه القيم وليس علينا إنشاؤها بأنفسنا؛ تُستخدم هذه المفاتيح داخليًا فقط، لذا لن تتأثر سهولة الاستخدام إذا وضعنا قيمًا معقدة هنا. نفِّذ الأمر الآتي للحصول على قيم آمنة من مولِّد ووردبريس: curl -s https://api.wordpress.org/secret-key/1.1/salt/ ستحصل على قيمٍ فريدةٍ كما هو ظاهر في المثال الآتي: تحذير: من المهم جدًا طلب قيم فريدة في كل مرة. لا تنسخ القيم الآتية! define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%'); يمكنك نسخ الأسطر الظاهرة عندك مباشرةً إلى ملف الضبط لإعداد المفاتيح الآمنة. انسخ المخرجات التي حصلتَ عليها من الأمر السابق. افتح الآن ملف ضبط ووردبريس: nano /var/www/html/wp-config.php ابحث عن القسم الذي يحتوي على القيم المبدئية لهذه المفاتيح؛ إذ سيبدو كما يلي: . . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . . امسح الأسطر أعلاه وألصق الأسطر التي نسختها من الأمر السابق: . . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . . سنحتاج الآن إلى تعديل معلومات الاتصال بقاعدة البيانات الموجودة في بداية الملف؛ إذ علينا تعديل اسم قاعدة البيانات واسم المستخدم وكلمة المرور الخاصة به والتي ضبطناها في MySQL. إضافةً إلى ذلك، علينا تعديل الطريقة التي على ووردبريس استخدامها للكتابة إلى نظام الملفات، ولمّا كنا قد أعطينا خادوم الويب الإذن للكتابة حيث يحتاج، فيمكننا تحديد طريقة الكتابة إلى نظام الملفات إلى direct. إذا لم نستعمل هذا الخيار في ملف الضبط فسيؤدي ذلك إلى طلب معلومات FTP عندما تحتاج ووردبريس إلى إجراء بعض العمليات على نظام الملفات. يمكن إضافة هذا الخيار تحت خيارات الاتصال بقاعدة البيانات، أو إلى أي مكان آخر في الملف: . . . define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password'); . . . define('FS_METHOD', 'direct'); احفظ الملف وأغلقه عندما تنتهي من العمل عليه. الخطوة السادسة: إكمال التثبيت عبر واجهة الويب اكتمل الآن ضبط الخادوم، ويمكننا متابعة التثبيت عبر واجهة الويب. افتح متصفح الويب الخاص بك وانتقل إلى اسم نطاق الخادوم أو عنوان IP العام الخاص به: http://server_domain_or_IP اختر اللغة التي تشاء استخدامها: ثم ننتقل إلى صفحة الإعداد الرئيسية. اختر اسمًا لموقع ووردبريس واختر اسم المستخدم (من المستحسن عدم استعمال اسم مثل «admin» لأسباب أمنية). ستولَّد كلمة مرور قوية تلقائيًا، يمكنك حفظ هذه الكلمة أو اختيار أخرى قوية. أدخِل عنوان بريدك الإلكتروني واختر ما إذا كنت تريد فهرسة موقعك من محركات البحث أم لا. بعد أن تنتهي من التثبيت ستؤخذ إلى صفحة تطلب منك تسجيل الدخول: بعد أن تسجِّل دخولك، فستؤخذ إلى لوحة تحكم ووردبريس. ترقية ووردبريس عندما يتوافر إصدار جديد من ووردبريس، فلن تتمكن من تثبيته عبر واجهة الويب وذلك بسبب أذونات الملفات الحالية. الغرض من الأذونات التي اخترناها هو الموازنة بين الأمان وقابلية الاستخدام لحوالي 99% من الحالات، لكنها لن تسمح بتثبيت التحديثات التلقائية. فعند توافر ترقية لووردبريس فعليك تسجيل الدخول مجددًا إلى خادوم الويب كمستخدم sudo، ثم منح عملية خادوم الويب وصولًا إلى جذر الموقع: sudo chown -R www-data /var/www/html افتح لوحة تحكم ووردبريس وحدثها كالمعتاد. بعد أن تنتهي من الترقية، فأعد الأذونات كما كانت سابقًا: sudo chown -R sammy /var/www/html الطريقة السابقة ضرورية عند ترقية برمجية ووردبريس نفسها. الخلاصة يجب أن تكون ووردبريس مثبتةً على خادومك وجاهزةً للاستخدام. هنالك بعض الأمور التي عليك ضبطها مثل بنية الروابط الدائمة لمنشوراتك (في صفحة Settings > Permalinks أو الخيارات > الروابط الدائمة) واختيار قالب جديد (في صفحة Appearance > Themes أو المظهر > قوالب). إذا كانت هذه أوّل مرة تستعمل فيها ووردبريس فخذ وقتًا في تعلم طريقة التعامل معها. ترجمة – بتصرّف – للمقال How To Install WordPress with LAMP on Ubuntu 16.04 لصاحبه Justin Ellingwood.
  3. كنت، ولفترة طويلة، أستخدم إحصائيات الموقع التي يوفرها الملحق Jetpack، إذ لم أقم بتثبيت تحليلات جوجل Google Analytics على مدونتي، وكنت راضية جدا باستخدامها. لكن قبل حوالي سنة قمت بتثبيت تحليلات جوجل (بمساعدة المُلحق Yoast). قد تعتقد أنّ استخدام Jetpack وتحليلات جوجل معا هو أمر مبالغ فيه، لكن الأداتين رائعتان، وأحصل على أنواع مختلفة من المعلومات عن طريقها. بالإضافة إلى ذلك، أعتقد أنّ تحليلات جوجل أكثر دقة فيما يخصّ القياسات، لذلك أقوم باعتماد الأرقام التي أحصل عليها منها عندما ينتابني الشك بخصوص أمر معين. في هذا المقال سنوضح كيفية فهم وتفسير الإحصائيات التي توفرها تحليلات جوجل وتحليلات الموقع في ووردبريس (أو jetpack). تحليلات جوجل إليك ما تحتاج إلى معرفته كمدون حول تحليلات جوجل: المشاهدات Pageviews يمثل هذا الرقم عدد مرات زيارة الموقع (أو عدد الصّفحات التي تم استعراضه) في المجموع خلال فترة التقرير. المستخدمون Users ويمثل هذا الرقم عدد المستخدمين الفريدين الذي قاموا بزيارة موقعك خلال فترة التقرير. على سبيل المثال، يمكن أن يكون عدد مرات مشاهدات الصفحة 5000 مرة في شهر محدد، لكن 3000 فقط هو عدد الزائرين الذين قاموا بتلك المشاهدات، وذلك لأنّهم قاموا بزيارة أكثر من صفحة في الموقع أثناء تصفحهم. معدل الارتداد Bounce Rate أي نسبة المُستخدمين التي تغادر (ترتدّ) موقعك بمجرّد زيارة صفحة واحدة، ويقوم هذا المقياس بتعقب الزمن الذي يستغرقه الزائر في مدونتك قبل أن يغادرها. من البديهي أنّك ترغب في أن يكون هذا العدد في أدنى مستوى ممكن، لكن المدونات بصورة عامة تمتلك معدلات ارتداد عالية، لأنّ الزائر يدخل المدونة لقراءة مقال اليوم، وعادة ما يغادر بعد ذلك. الاكتساب Acquisitions من المهم جدا أن تعرف مصدر التدفق Traffic الذي يأتي إلى مدونتك، فهذه هي الطريقة الوحيدة لمعرفة فيما إذا كانت جهودك في التسويق وتهيئة مدونتك لمحركات البحث (SEO) ناجحة أو لا. توضح الصورة أعلاه أنّ الأغلبية العظمى من التدفق تأتي إلى موقعي من البحث الطبيعي organic search، وهذا المؤشر جيد، فهو يعني أنني نجحت بتهيئة مقالاتي لمحركات البحث. أما مصدر الإحالة الذي يأتي في المركز الثاني بعد البحث الطبيعي فهو شبكات التواصل الاجتماعي، تليها الإحالة المباشرة Direct (وهو التدفق من مشتركي RSS وما شابه ذلك). يمكنك أن تكون أكثر تفصيلا في مقياس الاكتساب لمعرفة بالضبط أي الشبكات الاجتماعية هي التي تجلب أغلب التدفق. على سبيل المثال يأتي أغلب التدفق إلى موقعي من تويتر وفيس بوك، وبمعرفة ذلك يمكنني تكثيف أنشطتي على هاتين الشبكتين: كانت هذه هي الإحصائيات الأساسية التي أركّز عليها في تحليلات جوجل. ولكن بصراحة، هناك المزيد لتكتشفه. على سبيل المثال، يمكنك معرفة أيّ المتصفحات أو الأجهزة المحمولة التي يستخدمها الناس لتصفح مدونتك. كما بإمكانك معرفة أيّ الكلمات المفتاحية التي يقومون باستخدامها عند البحث على جوجل لغرض العثور على مدونتك. ولذلك تأكد من تثبيت تحليلات جوجل على مدونتك، وتعقب إحصائياتك بدءًا من اليوم. تحليلات ووردبريس في هذه الفقرة سنركز على التحليلات الخاصة بمنصة ووردبريس. للمدونين خياران لتعقب الإحصائيات على ووردبريس: إذا كانت مدونتك مُستضافة على ووردبريس، فستتمكن من الوصول إلى الإحصائيات الخاصة بها من Dashboard> Site Stats: أما إذا كانت مدونتك ذاتية الاستضافة self-hosted ففي هذه الحالة يجب تثبيت الملحق Jetpack. عندما تبدأ بتعقب إحصائيات ووردبريس الخاصة بموقعك يجب أن تنتظر لفترة شهر على الأقل لكي تتمكن من جمع البيانات التي تعطيك صورة واضحة عمّا يجري على موقعك. توفّر إحصائيات الموقع في ووردبريس مخططا للتدفق الكلّي خلال الشهر الماضي: ستلاحظ أنّ هناك اثنان من الأشرطة الملونة المختلفة. تمثل الأشرطة باللون الأزرق الفاتح المُشاهدات page views، بينما تمثل الأشرطة باللون الأزرق الغامق الزائرين الفريدين. من المهم جدا معرفة مشاهدات الصفحة، وكذلك الزائرين الفريدين unique visitors. قد يقوم الناس الذين يأتون إلى موقعك بزيارة أكثر من صفحة، وهذا يؤدي إلى إحصائيات مرتفعة قليلا. سيرغب معظم الأشخاص الذي يهتمون بالعمل معك في معرفة إحصائيات الزائرين الفريدين. ووردبريس ليس جيدا في تزويدك بهذه المعلومة، إذ أنه يخبرك عن عدد المشاهدات التي تحصل عليها في الشهر، لكنّ استخلاص المعلومات المتعلقة بالزائرين الفريدين سيكون أصعب قليلا. من يقوم بقراءة مقالاتك؟ يقوم ووردبريس بتوفير خارطة سهلة جدا توضح البلدان التي يأتي منها قراء المقالات على مدونتك. في الصورة أعلاه أفضل مقالاتي في جميع الأوقات (all time)، ومنها أعرف أنّه يجب عليّ كتابة المزيد من المقالات مثل Salad in a Jar. أفضل المقالات والصفحات Top Posts and Pages ما هي المقالات والصفحات الأكثر شعبية في مدونتك؟ يمكنك معرفة تلك المقالات/الصفحات إمّا على المدى القريب أو على المدى البعيد. بالنسبة لي، أفضل النظر إلى المدى البعيد، وعندما أعرف نوعية المقالات التي تجذب القراء، أقوم بإنشاء روابط فيما بينها إذا كانت تشترك بشيء ما في العموم. أو أقوم بكتابة المزيد من المقالات حول الموضوع ذي الشعبية. إنّ معرفة المقالات الأكثر شعبية يعطيك دلالة واضحة على أفضلية كتابة المزيد حول ذلك الموضوع، وكنتيجة ستجلب المزيد من التدفق إلى مدونتك. الإحالات Referrers ما هو مصدر التدفق؟ إذا كان الجزء الأكبر منه يأتي عن طريق البحث الطبيعي فهذه إشارة جيدة على أنّك تقوم بتهيئة مقالاتك لمحركات البحث بصورة جيدة. وإذا كان الجزء الأكبر يأتي من الشبكات الاجتماعية، فهذا يعني أنّك نجحت في الترويج لمقالاتك عبر الشبكات الاجتماعية. وهذه الإحصائيات مفيدة بشكل خاص لمعرفة أين يجب أن تركز جهودك. على سبيل المثال، إذا كنت تحصل على الكثير من التدفق عن طريق فيس بوك، واصل النشر على فيس بوك. وإذا كان التدفق الذي تحصل عليه من Google+ قليلا، قم بإهمال هذه الشبكة أو جرّب شيئا آخر. 5 من أفضل المقالات في مدونتي تتحدث حول المثالية، يجب أن أكتب المزيد حول هذا الموضوع مصطلحات محرك البحث Search Engine Terms تقابل مصطلحات محرك البحث الكلمات المفتاحية Keywords. ويُقصد بها المصطلحات التي يقوم الناس بكتابتها في جوجل والتي توصلهم إلى مدونتك. ما الذي تستفيده من هذه الإحصائية؟ بمعرفتك لأكثر المصطلحات المستخدمة (على الرغم من أنّ بعضها غريبة) يمكنك الاستفادة منها بإدخالها في مقالاتك لجعلها أكثر قابلية للبحث. ترجمة-وبتصرّف-للمقالين Understanding Analytics #1: Google Analytics for Bloggers و Understanding Analytics #2: WordPress Site Stats and Jetpack لصاحبته: Rebecca Coleman.
  4. إحدى أفضل ميزات الشبكات متعددة المواقع في ووردبريس تكمن بإمكانية سماحك للمستخدمين بإنشاء مواقع خاصة بهم، سواءً مجانًا أو لقاء أجر. السماح للمستخدمين بالتسجيل في شبكتك وإنشاء موقع خاص بهم هو أمرٌ بسيطٌ جدًا، كل ما عليك فعله هو تفعيل هذا الخيار في إعدادات الشبكة، لكن يمكنك إجراء تحسينات على هذه العملية وجعل تجربة المستخدم أفضل. هذا هو الدرس الخامس من سلسلة الشبكات متعددة المواقع في ووردبريس. ستتعلم في هذه السلسلة كل ما تحتاج له لكي تُنشِئ شبكتك، وتضيف المواقع إليها أو تسمح للمستخدمين بذلك، بالإضافة إلى إدارة الشبكة. وستتعلم كيف تتأكد أنَّ شبكتك آمنة وأداؤها عالٍ، وكيف يمكنك أن تُنشِئ مجتمعًا ناجحًا من المستخدمين والمواقع. ستتعلم في هذا الدرس كيفية ضبط عملية التسجيل في الموقع، ثم سنتحدث عن كيف سيتمكن المستخدمون من إنشاء مواقع خاصة بهم، وسنستكشف كيف نتمكن من جعل تلك العملية أبسط، وكيفية تخصيص رسائل التسجيل؛ ثم سننظر حول كيفية جعل عملية إنشاء موقع أسهل عبر استخدام إحدى الإضافات. قبل أن نبدأ في هذا الدرس، أنصحك أن تراجع الدروس السابقة في السلسلة، التي ستوفر لك خلفيةً صلبةً عن ميزة تعدد المواقع في ووردبريس وكيفية ضبطها، وإنشاء المواقع والمستخدمين على الشبكة، وتثبيت القوالب والإضافات، وكيفية ضبط إعدادات الشبكة. عندما تنتهي من الاطلاع على ما سبق، فسنبدأ درسنا بإجراء الخطوة الأساسية الأولى: تفعيل تسجيل المواقع. تفعيل تسجيل المواقع تسجيل المواقع هو ميزة من ميزات تعدد المواقع التي تُشكِّل جزءًا من ووردبريس، لذا كل ما عليك عمله هو تفعيلها؛ وذلك عبر صفحة إعدادات الشبكة في لوحة التحكم. اذهب إلى صفحة «Settings > Network Settings» (الإعدادات > إعدادات الشبكة) في لوحة تحكم مدير الشبكة، لكي ترى ما يلي: القسم الثاني الموجود في الصفحة السابقة هو قسم «Registration Settings» (إعدادات التسجيل). يكون تسجيل المستخدمين والمواقع معطلًا افتراضيًا، وعليك تغيير ذلك. انتقِ إحدى الخيارات الأخرى التي تناسب احتياجاتك. هذه هي الخيارات المتاحة أمامك، وما الذي تفعله: التسجيل معطّل: يمكن لمدراء الشبكات أو المواقع فقط إنشاء المستخدمين الجدد، ويمكن لمدراء الشبكة فقط إنشاء مواقع جديدة (أي أنَّ تسجيل المواقع من قِبل المستخدمين مُعطَّلٌ). السماح بتسجيل عضويات: يمكن للآخرين إنشاء حساب مستخدم على شبكتك لكنهم لن يستطيعوا إنشاء موقع جديد (وهذا شبيهٌ بتسجيل المستخدمين في مواقع ووردبريس المفردة). السماح للأعضاء المتصلين بتسجيل مواقع جديدة: يمكن للأشخاص الذين يستطيعون تسجيل الدخول أن يُنشِئوا المواقع. استخدم هذا الخيار إن لم تكن تريد أن يُنشِئ الآخرون حسابات مستخدمين ومواقع خاصة بهم، لكنك تريد أن يكون تسجيل المواقع مقتصرًا على المستخدمين الذين أعددتهم بنفسك. هذا الخيار مفيدٌ للأنظمة المغلقة مثل شبكة من المواقع للمجتمع أو لشركةٍ ما. السماح بتسجيل مواقع وعضويات: يمكن للآخرين إنشاء مواقع وحسابات مستخدمين في نفس الوقت (أو يمكنهم إنشاء موقع باستخدام عضوية موجودة مسبقًا). في هذه المرحلة من سلسلتنا التعليمية، سنسمح للمستخدمين بإنشاء حسابات المستخدمين ومواقع خاصة بهم، لذا سنختار الخيار الرابع: «السماح بتسجيل مواقع وعضويات» (Both sites and user accounts can be registered). بعد أن تفعل ذلك، فلننظر إلى إعدادات الضبط التي تلي ما سبق: إشعار التسجيل: أبقِ هذا الحقل مُفعَّلًا لكي تحصل على تنبيه في كل مرة يحاول فيها شخصٌ ما إنشاء حساب مستخدم أو موقعًا جديدًا. إذا كانت شبكتك حديثةً، فأنصحك بتفعيل هذا الخيار لكي تستطيع أن تكتشف الأشخاص المزعجين؛ وعندما تنمو شبكتك فسيصبح من غير الملائم أن تستقبل رسائل بريدية طوال الوقت، وفي هذه الحالة ستحتاج إلى إضافة لمكافحة المستخدمين المزعجين، وسننظر في هذا الأمر بالتفصيل في آخر جزء من سلسلتنا، الذي سيكون عن إدارة الشبكة. إضافة مستخدمين جدد: إذا كانت شبكتك عامة، أو كنت تريد أن تسمح لمدراء المواقع بإضافة مستخدميهم، فيجب عليك تفعيل هذا الحقل؛ لكن إن كنت تريد تحكمًا أكبر بعملية إنشاء حسابات المستخدمين، فاترك هذا الحقل معطلًا. أحب عادةً أن أعطي مدراء المواقع عندي إمكانية تسجيل مستخدمين جدد لمواقعهم، لذا أنصحك بتفعيل هذا الحقل. الأسماء الممنوعة: تُضيف ووردبريس قائمةً بأسماء المدونات الممنوعة افتراضيًا، لكنك تستطيع الإضافة عليها. هذه هي الأسماء التي ستكون اختصاراتٍ للمواقع الجديدة. إذا أردتَ أن تُضيف المزيد منها، فاكتبها في الحقل وافصل بينهما بفراغ. ربما تود تضمين اسم علامتك التجارية، أو أيّة أسماء لصفحاتٍ أنشأتها في موقعك. نطاقات البريد الإلكتروني المسموحة: إذا كانت شبكتك تابعةً لمنظمةٍ يتشارك الأعضاء فيها بنطاق بريدهم الإلكتروني، فيمكنك أن تستعمل هذا الحقل لكي تمنع أي شخصٍ لا يملك عنوانًا بريديًا مسموحًا من إنشاء موقع. اكتب اسم النطاق دون رمز @، فلو كان اسم النطاق الخاص بك هو microsoft.com (على سبيل المثال)، فكتابة microsoft.com في ذاك الحقل تؤدي إلى تحديد عملية تسجيل المواقع للأشخاص الذين يملكون عنوانًا بريديًا من الشكل name@microsoft.com. نطاقات البريد الإلكتروني الممنوعة: استخدم هذا الحقل لذكر نطاقات البريد الإلكتروني التي لا تريد أن يتمكن مستخدموها من التسجيل في الموقع. وهذا يعني لو أنَّك أضفتَ microsoft.com هنا، فلن يتمكن أي شخصٍ يملك عنوانًا بريديًا من الشكل name@microsoft.com من إضافة موقع أو تسجيل حساب مستخدم. هذا مفيدٌ إذا واجهت محاولات تسجيل مزعجة من حسابات تستعمل نفس نطاق البريد الإلكتروني. بعد أن تضبط الإعدادات اللازمة لتفعيل تسجيل المواقع وإضافة أيّة أسماء أو نطاقات محظورة… فمرِّر إلى أسفل الصفحة واضغط على رز «Save Changes» (حفظ التغييرات). بقية الصفحة السابقة تتعلق بكيفية تخصيص عملية التسجيل، والتي سأشرحها بعد أن ننظر إلى طريقة إنشاء المستخدمين لمواقعَ خاصةٍ بهم. تسجيل موقع وحساب مستخدم بعد أن تُفعِّل تسجيل المواقع، سيتمكن المستخدمون من فعل ذلك بزيارة صفحة wp-signup.php في موقعك. فلو كان رابط موقعك هو http://mynetwork.com، فعليهم زيارة الصفحة http://mynetwork.com/wp-signup.php. حسنًا، لا أتوقع أن يعلم المستخدمون أنَّ بإمكانهم التسجيل دون أن نخبرهم بذلك! لذا ما عليك فعله الآن هو وضع نوع من أنوع الروابط لصفحة التسجيل. يمكنك فعل ذلك بإحدى الطرق الآتية: إضافة رابط إلى قامة التنقل الرئيسية إضافة زر يدعو المستخدمين إلى التسجيل إضافة رابط في التذييل أو الشريط الجانبي إضافة عدد من الروابط في الصفحة الرئيسية (أو أيّة صفحات أخرى مناسبة) استخدام ودجت للتسجيل (سنأتي عليها لاحقًا). اعتمادًا على حاجاتك وطبيعة مستخدمين، فربما يكون من المناسب استخدام أكثر من تقنية من التقنيات السابقة. لكن لتبسيط الأمر، سنبدأ بإضافة رابط إلى قائمة التنقل. إضافة رابط لصفحة التسجيل في قائمة التنقل يمكنك فعل هذا في صفحة «Menus» (قوائم) في لوحة تحكم المواقع أو عبر صفحة «التخصيص» في الموقع الرئيسي في شبكتك. لنستخدم صفحة التخصيص. اختر موقعك الرئيسي من قائمة «My Sites» (مواقعي) ثم اذهب إلى «Appearance > Customize» (مظهر > تخصيص) لفتح صفحة التخصيص: اختر لسان «Menus» (قوائم) من على الجانب الأيسر (على الجانب الأيمن في الواجهة العربية)، ثم اختر قائمة الرئيسية، أو إذا لم يملك موقعك قائمةً بعد، فأنشِئ واحدةً بالضغط على زر «Add a menu» (أضف قائمة). تأكد أنَّ قائمتك موجودةٌ في المكان الأساسي (Primary location) في قالبك (أو أيًا كان المصطلح المستخدم في القالب للدلالة على القائمة الرئيسية): بعد أن تفعل ذلك، فستتمكن من إضافة عناصر بالضغط على زر «Add items» (أضف عناصر)؛ ثم اختر «Custom Links» (روابط مخصصة)، ثم في حقل رابط URL اكتب http://mynetwork.com/wp-signup.php حيث mynetwork.com هو اسم نطاق موقعك؛ واكتب النص الذي سيظهر في القائمة في حقل «Link Text» (نص الرابط). يمكنك أن ترى ذلك في الصورة الآتية: اضغط على زر «Add to Menu» (أضف للقائمة) ثم اضغط على زر «Save & Publish» (حفظ ونشر) في الزاوية العليا اليسرى (الزاوية العليا اليمنى في الواجهة العربية). هذا سيحفظ القائمة التي فيها رابط لصفحة التسجيل: تسجيل موقع الآن، وبعد أن أعطيت مستخدميك رابطًا لتسجيل موقعهم، فكل ما سيحتاجون له هو الضغط على الرابط لرؤية صفحة التسجيل: ولمّا كنتَ مديرًا للشبكة، فسترى رسالةً في الأعلى، التي لن يراها بقية المستخدمين. وسترى إشعارًا من بقية المواقع التي تكون عضوًا فيها، وبعض المعلومات الأخرى. لنسجل خروجنا ونحاول إنشاء موقع جديد وحساب مستخدم جديد. سجل الخروج من حسابك كمدير للشبكة ثم حدِّث الصفحة (أو استخدم الرابط الموجود في قائمة التنقل لفتحها): يمكنك أن ترى حقلين يجب تعبئتهما للبدء: اسم المستخدم عنوان البريد الإلكتروني يجب أن يكون كلاهما فريدًا، فلو حاول أحدٌ التسجيل باسم مستخدم أو بريد إلكتروني مُسجَّل مسبقًا على الشبكة، فسيحتاج ذلك الشخص إلى تسجيل الدخول ومن ثم إنشاء موقع جديد (أي لا يمكن إنشاء حسابين بنفس الاسم أو البريد الإلكتروني). ملاحظة: بعد أن يملأ المستخدم هذين الحقلين، فعليه الاختيار بين تسجيل موقع أو تسجيل حساب مستخدم. إذا اختار تسجيل موقع، فسيُنشَأ حساب مستخدم جديد تلقائيًا، ولا حاجة لإنشائه يدويًا. إذا أبقى المستخدم على الخيار الافتراضي «Gimme a site!‎» (أريد موقعًا!) ثم ضغط على زر «Next» (التالي)، فسينتقل إلى صفحةٍ تسأله عن معلوماتٍ عن موقعه: سيحتاج هنا إلى توفير رابط مختصر (slug) لموقعه، الذي سيُملَأ تلقائيًا باسم المستخدم الذي اختاره، وسيُطلَب منه أيضًا توفير عنوان للموقع؛ ويجب أن يُحدِّد إن كان يريد أن تُفهرِس محركات البحث هذا الموقع. سأغيّر رابط الموقع وعنوانه، وسأعطِّل فهرسة الموقع الجديد، وذلك لأني لستُ مستعدًا لعرضه على الزوار بعد. لا تنسَ أنَّ مدراء المواقع يستطيعون تغيير هذا الضبط في إعدادات الموقع بعد إنشائه، وذلك بالذهاب إلى «Settings > Reading» (الإعدادات > قراءة). في النهاية، اضغط على زر «Signup» (تسجيل) لإنشاء الموقع. ملاحظة: إن بدا لك عدم تغيّر أي شيء في بادئ الأمر، فاصبر؛ فإذا ضغطتَ مرتين على زر التسجيل فستحصل على رسالة خطأ. سيحصل المستخدم على رسالةٍ مفادها أنَّ موقعه أصبح جاهزًا تقريبًا: لكن لأسبابٍ أمنية، يجب أن يضغط المستخدم على رابطٍ سيُرسَل له عبر البريد الإلكتروني قبل أن يعمل الموقع. تحقق من صندوق البريد الوارد في البريد الإلكتروني الذي استعملتَه للتسجيل؛ حيث ستحصل على رسالة إلكترونية شبيهة بالرسالة الآتية: اضغط على ذاك الرابط لتذهب إلى صفحة فيها معلومات الدخول الخاصة بك: يمكنك الآن زيارة موقعك أو تسجيل الدخول كمدير للموقع باستخدام الروابط الموجودة. ستُرسِل ووردبريس رسالةً إلى المستخدم على البريد الإلكتروني فيها تفاصيل الموقع الجديد: هذا هو الموقع الخاص بالمستخدم، مع قالب Twenty Sixteen المفعل افتراضيًا: تخصيص عملية التسجيل ما رأيته الآن هو العملية الافتراضية لتسجيل موقع، لكن إن أردت أن تُخصِّص بعض الأمور، فهذه هي الخيارات المتاحة أمامك: تخصيص رسالة الترحيب التي تصل على البريد (ثاني رسالة) عبر صفحة ضبط الشبكة تخصيص رسالة الترحيب للمستخدمين الجدد الذين لم يسجلوا موقعًا عبر صفحة ضبط الشبكة تخصيص المحتوى الافتراضي للمواقع الجديدة (أول منشور، وأول صفحة، وأول تعليق) عبر صفحة ضبط الشبكة تخصيص نموذج التسجيل عبر إضافة لنبدأ بتخصيص رسالة الترحيب التي تصل على البريد للمواقع الجديدة وللمستخدمين الجدد. تخصيص رسائل الترحيب الإلكترونية اذهب إلى «Settings > Network Settings» (الإعدادات > إعدادات الشبكة) ثم مرِّر إلى الأسفل إلى أن تصل إلى قسم «New Site Settings» (إعدادات الموقع الجديد): ابدأ بتعديل البريد الإلكتروني الذي سيُرسَل إلى الأشخاص الذين نجحوا بتفعيل موقعهم الجديد، وذلك بتعديل الرسالة الموجودة في حقل «Welcome Email» (رسالة الترحيب بأصحاب المواقع). لاحظ أنَّ هنالك بعض الأكواد الخاصة مكتوبة بأحرفٍ كبيرة التي من المستحسن الإبقاء عليها: USERNAME: اسم مستخدم مالك الموقع SITE_NAME: عنوان الشبكة (وليس الموقع الجديد) BLOG_URL: عنوان URL للموقع الجديد (مع شرطة مائلة في نهايته) PASSWORD: كلمة مرور المستخدم الجديد LOGINLINK: رابط لكي يسجِّل المستخدم دخوله إلى الشبكة أو إلى الموقع الذي أُضيف إليه من قِبل مدير موقع هذا هو النص الذي سأستعمله، الذي أرى أنَّه ملائم أكثر لموقعي: لنعدل الآن البريد الذي سيصل للمستخدمين الجدد الذين لم يضيفوا موقعًا جديدًا. هذه الرسالة تتضمن نصًا مشابهًا للرسالة السابقة، لكن دون أيّة إشارات إلى إدارة الموقع. عدِّل هذه الرسالة في حقل «Welcome User Email» (رسالة الترحيب بالأعضاء الجدد): بعد أن تُعدِّل هذه الرسائل، اضغط على زر «Save Changes» (حفظ التغييرات) في أسفل الصفحة لحفظ تعديلاتك. تخصيص المحتوى الافتراضي افتراضيًا، تملأ ووردبريس كل موقع على الشبكة بمنشور وصفحة وتعليق، وذلك بطريقةٍ شبيهةٍ بالمواقع المفردة. يمكنك أن تُعدِّل ذلك المحتوى. أرى شخصيًا أنَّ المحتوى الافتراضي غير مفيد أبدًا، لهذا أحب أن أعدِّله. لفعل ذلك، اذهب إلى «Settings > Network Settings» (الإعدادات > إعدادات الشبكة) ثم مرِّر إلى الأسفل إلى أن تصل إلى قسم «New Site Settings» (إعدادات الموقع الجديد) ثم تخطى الحقلين الخاصين برسائل البريد الذين عملنا عليهما في الفقرة السابقة. يمكنك استخدام شيفرات HTML في هذه الحقول لإضافة تعدادات أو روابط أو صور أو غير ذلك. كن مبدعًا! عدلتُ المنشور الافتراضي في شبكتي لكي يوفر مزيدًا من المعلومات حول كيفية عمل المنشورات والصفحات والتعليقات: وعندما يُنشِئ أحدهم موقعًا في شبكتي، فسيبدأ بموقع يحتوي منشورًا وصفحةً وتعليقًا كالتي ضبطتُها: تخصيص صفحة التسجيل إن لم تكن سعيدًا بصفحة التسجيل الافتراضية، فيمكنك تخصيصها عبر إضافة. هذه هي بعض الخيارات المطروحة أمامك: استخدام إضافة تسجيل (هذه قائمة بأفضل 20 إضافة للتسجيل وتسجيل الدخول) لإضافة ودجت (widget) إلى قائمة الودجات في موقعك على الشريط الجانبي أو في التذييل، أو في منطقة خاصة بالودجات ضمن سياق المحتوى الرئيسي إن كان متوفرًا للقالب الذي تستعمله. استخدام إضافة للنماذج مثل Gravity Forms، التي تسمح لك بإنشاء نموذج للتسجيل/تسجيل الدخول الذي تتم من خلاله عملية التسجيل. ستحتاج إلى مكوِّن User Registration لإضافة Gravity Forms لكي تربط نموذجك بعملية التسجيل. ويمكنك أن تستعمل مكوِّن Paypal لإضافة خيار الدفع كجزء من عملية التسجيل. استخدام إضافة لتسجيل العضويات مثل Pro Sites، التي تسمح لك ببيع المواقع مع خيارات خاصة. لننظر إلى كيفية إنشاء نموذج تسجيل خاص باستخدام Gravity Forms. ملاحظة: إضافة Gravity Forms هي إضافة مدفوعة، وستحتاج إلى رخصة مطوِّر لاستخدام مكوِّن التسجيل. إن لم تكن ميزانيتك تسمح بذلك، فاستخدم صفحة التسجيل الافتراضية في ووردبريس. تخصيص نموذج التسجيل باستخدام Gravity Forms يجب أن تكون الإضافة مثبتةً ومفعّلةً في موقعك الرئيسي. يمكنك رؤية ذلك واضحًا في لقطة الشاشة الآتية: الخطوة التالية هي إنشاء نموذج. اذهب إلى «Forms > New Form» لإنشاء نموذجك. ستحتاج إلى الحقول الآتية على الأقل: اسم المستخدم البريد الإلكتروني عنوان الموقع يمكنك إضافة حقول أخرى مثل الاسم الأول والكنية ورابط الموقع، التي يمكن أن تُستعمَل أثناء عملية تسجيل المستخدم. هذا هو النموذج الذي سأعتمده: نموذجٌ بسيطٌ جدًا كما ترى، خذ وقتك لإجراء أيّة تعديلات تلائمك. بعد أن تنتهي من هذه الخطوة، عليك أن تربط هذا النموذج بعملية تسجيل المستخدم. اذهب إلى «Forms > User Registration» ثم اضغط على زر «Add New». اختر الإجراء الذي تريده لنموذجك أولًا، والذي هو «Create User» ثم اختر النموذج الذي أنشأتَه منذ قليل من القائمة. ثم ستظهر حقولٌ إضافية: اختر الحقول لنموذج التي تريد أن تستخدمها لإتمام عملية التسجيل من القوائم المنسدلة. ثم مرِّر إلى الأسفل إلى قسم «Network Options» وفعِّل خيار «Create Site»: مما سيُظهِر حقولًا إضافية متعلقة بعملية إنشاء الموقع. اختر الحقول الموافقة من القوائم المنسدلة كما مرَّ معنا سابقًا. إذا قررتَ في هذه المرحلة أنَّ عليك تعديل أمرٍ ما في النموذج أو إضافة حقول أخرى، فلا حرج في ذلك، احفظ ما عدَّلتَه في هذه الصفحة، ثم ارجع إلى النموذج وعدِّل ما تشاء ثم عُد إلى هذه الصفحة وأكمل التحرير. مرِّر إلى الأسفل لتصل إلى «Additional Options» وفعِّل خيار «User Activation»؛ وهذا سيؤدي إلى تفعيل التأكد من المستخدم عبر البريد الإلكتروني وسيُحسِّن من مستوى الحماية في شبكتك. في النهاية، اضغط على زر «Save» لحفظ ما تم تعديله في هذه الصفحة. كل ما عليك فعله الآن هو إضافة النموذج إلى موقعك، تعطيك إضافة Gravity Forms ودجت تستطيع أن تستعملها في الشريط الجانبي أو في التذييل، أو يمكنك إضافتها إلى صفحتك الرئيسية. بشكلٍ بديل، يمكنك إنشاء صفحة جديدة الغرضُ منها هو إظهار نموذج التسجيل، والتي تُمثِّل نسخةً مُحسَّنةً من صفحة wp-signup الأصلية. لكني سأضيف هنا النموذج إلى الشريط الجانبي. يمكنك إضافة الودجات عبر صفحة الودجات أو عبر تخصيص القالب. سأستخدم هنا صفحة تخصيص القالب. اذهب إلى «Appearance > Customize» (مظهر > تخصيص) ثم اختر «Widgets» (ودجات)، ثم اختر منطقة الودجات التي تريد التعامل معها، ثم اضغط على زر «Add a Widget» (أضف ودجت)، ثم اختر ودجة «Forms»: ثم اختر النموذج الذي تريد استخدامه، ثم عدِّل عنوانه: في النهاية، اضغط على «Save & Publish» (حفظ ونشر)؛ وسترى نموذج التسجيل في موقعك: حاليًا، صفحتي الرئيسية تعرض التدوينات التي أكتبها، وهذا ليس مفيدًا أبدًا؛ لذا سأعدِّل الصفحة الرئيسية إلى صفحة ثابتة لحثّ الزوار على التسجيل. هذه هي النسخة المُحسّنة: يمكنني إضافة هذا النموذج إلى صفحتي الرئيسية أو إلى صفحةٍ أخرى إن شئت –بالإضافة إلى منطقة الودجات– وذلك باستخدام زر لإضافة نماذج Gravity Forms في صفحة تحرير المنشورات والصفحات. يمكن الآن لمستخدمي الشبكة أن يصلوا إلى نموذج يُمكِّنهم من إنشاء موقع خاص بهم. أستطيع أيضًا تثبيت مكوِّن Paypal لإضافة Gravity Forms لكي أجعل المستخدمين يدفعون لقاء التسجيل. أو يمكن استخدام إضافة Pro Sites، التي تسمح لك بضبط عدِّة خيارات متعلقة بعضوية الشبكة وبإنشاء المواقع. شبكة ووردبريس تحب المستخدمين! السماح بإنشاء المواقع من قِبل المستخدمين في شبكة ووردبريس بسيطٌ جدًا وذلك بتفعيل أحد الخيارات في إعدادات الشبكة. لكن، كما تعلم، جعل تلك العملية «صديقة» للمستخدم هو أمرٌ معقدٌ بعض الشيء. أنت تريد أن تَحُثَّ أكبر قدر ممكن من المستخدمين على التسجيل وإنشاء المواقع، ويمكن فعل ذلك بوضع روابط واضحة لصفحة التسجيل، ويمكنك أيضًا إضافة نموذج تسجيل مُخصَّص باستخدام إضافة Gravity Forms كما شرحنا أعلاه. في الجزء التالي من هذه السلسلة، سننظر إلى استخدامٍ آخر لشبكات ووردبريس لاستضافة المواقع الشخصية أو مواقع العملاء، وسنتعلم كيفية تسخير قدرات شبكات ووردبريس لاستضافة عدِّة مواقع لمستخدميك، وكيف تجعل سير العمل سلسًا قدر الإمكان. وسننظر أيضًا إلى كيفية ربط أسماء النطاقات كي نستعمل نسخة ووردبريس وحيدة لاستضافة عدد كبير من المواقع كلٌ على نطاقٍ خاصٍ به. ترجمة –وبتصرّف– للمقال WordPress Multisite Masterclass: Site and User Registration لصاحبته Rachel McCollin.
  5. فعّلنا في الدرس السابق شبكة المواقع في ووردبريس، وضبطتنا بعض الخيارات، وسنشرح في هذا الدرس إدارة المستخدمين والقوالب والإضافات. إدارة المستخدمين كما ذكرنا في الدرس السابق، يمكنك إضافة المستخدمين إلى موقعٍ معيّن عبر لسان Users (أعضاء) في صفحة Sites (المواقع) في لوحة تحكم مدير الشبكة. يمكنك أيضًا إضافة مستخدمين إلى الشبكة وتعديل بياناتهم عبر صفحة Users (أعضاء) في لوحة التحكم. هذه الصفحات تعمل بشكلٍ مشابهٍ لمواقع ووردبريس المفردة، ما عدا جزئية واحدة هي أنَّ هنالك معلومات عن المواقع التي يملك هذا المستخدم حسابًا فيها. سترى في الصورة الآتية مستخدمي الموقع الخاص بي، بالإضافة إلى حساب مدير الموقع الذي أنشأته للتو: سترى أيضًا عمودًا إضافيًا يُظهِر ما هي المواقع التي أُضيف إليها ذاك المستخدم. يمكنك استخدام هذه الصفحة للوصول إلى صفحة المستخدم، أو حذف المستخدم –ضع الفأرة فوق اسم المستخدم، ثم اضغط على رابط «حذف». حذف المستخدم لن يؤدي إلى حذف المواقع التي أنشأها– إذا كان لديك مستخدمٌ أنشأ حسابًا مزعجًا (spam) ومدونة لذاك الغرض، فعليك حينها حذف المستخدم والموقع. لإضافة مستخدم، اضغط على زر «Add New» (أضف جديد)، الذي يعمل بطريقة مشابهة لطريقة إضافة مستخدمين في المواقع المفردة. وإذا أردت إضافة ذاك المستخدم إلى موقع، فيمكنك فعل ذلك في صفحة «المواقع» في لوحة التحكم في لسان «Sites > Users» (المواقع > أعضاء). تثبيت القوالب والإضافات لا يمكن تثبيت القوالب والإضافات إلا من مدير الشبكة، إذ لا يستطيع مدراء المواقع فعل ذلك. لننظر إلى كيفية القيام بذلك، وكيف تتمكن بعدها من تفعيل أو تمكين تلك القوالب أو الإضافات لمواقع الشبكة. تثبيت وتفعيل القوالب بعد أن تُثبِّت قالبًا، فعليك تمكينه للمواقع الموجودة في شبكتك بإحدى الطريقتين الآتيتين: إما أن تُمكِّنه للمواقع كلًا على حدة، أو أن تُمكِّنه لجميع مواقع الشبكة. يمكن أن يُفعَّل القالب على موقعٍ ما (بوساطة مدير الشبكة أو مدير الموقع) إذا كان ذاك القالب مُمكَّنًا لكل مواقع الشبكة أو لذاك الموقع بالتحديد. هذه هي طريقة تثبيت قالب وتمكينه على الشبكة: في لوحة تحكم مدير الشبكة، اذهب إلى «Themes > Add New» (قوالب > أضف جديد)، ثم ثبِّت القالب بالطريقة المعتادة. في صفحة تثبيت القالب، اضغط على رابط «تفعيل في الشبكة» بشكلٍ بديل، يمكنك تمكين استخدام قالب مثبت مسبقًا بالذهاب إلى صفحة «Themes» (قوالب) ثم الضغط على رابط «تفعيل في الشبكة» الظاهر في أسفل القالب. يمكنك أيضًا أن تُمكِّن قالبًا لموقعٍ وحيد، وهذا مفيد إذا كانت تحتوي شبكتك على العديد من المواقع التي يجب أن يكون لكلٍ منها قالبٌ خاصٌ به؛ وهذا يكون عندما تستضيف شبكتك مواقع عملائك. تمكين القوالب لكل موقع على حدة يعني أنَّ بقية القوالب لن تكون متاحةً للمواقع التي لم تُمكِّن ذاك القالب فيها، لذا لن يستطيع مدراء المواقع تفعيل القالب الخاطئ دون قصد. هذه طريقة فعل ذلك: في لوحة تحكم الشبكة، اضغط على Sites (مواقع) لمشاهدة جميع المواقع التي عندك. مرر الفأرة فوق اسم الموقع الذي تريد تمكين القالب له ثم اضغط على رابط Edit (تحرير) الذي سيظهر. اضغط على لسان Themes (قوالب) لعرض صفحة تعديل ضبط القوالب لهذا الموقع: اضغط على رابط Enable (تفعيل). اذهب الآن إلى لوحة تحكم مدير الموقع واضغط على «Appearance > Themes» (مظهر > قوالب)، وسترى القالب الذي مكّنته موجودًا في القوالب القابلة للتفعيل: تثبيت وتفعيل الإضافات يجب أيضًا على مدير الشبكة تثبيت الإضافات، لكنها تعمل بشكلٍ مختلف عن القوالب، إذ لا تستطيع أن تُفعِّل إضافةً ما لموقعٍ معيّن، وإنما يمكنك أن تُفعِّل الإضافة لكل المواقع الموجودة على الشبكة، أو أن تثبِّتها لكي يتمكن مدراء المواقع من تفعيلها. تفعيل الإضافات على كل الشبكة مفيدٌ إذا كتبتَ أو نزلتَ إضافةً توفِّر ميزةً تريد لكل مواقع شبكتك أن تملكها، على سبيل المثال، لو أردت تفعيل إضافة للتخزين المؤقت (caching) أو إضافة لتحسين SEO. هنالك بعض الإضافات التي يمكن أن تُفعَّل لكامل الشبكة فقط، على سبيل المثال، أُثبِّت على شبكة عملائي إضافة Snapshot لأخذ نسخ احتياطية لكامل مواقع الشبكة بشكلٍ دوري. هذه هي طريقة تثبيت وتفعيل إضافة: في لوحة تحكم مدير الشبكة، اذهب إلى «Plugins > Add New» (إضافات > أضف جديد) وثبِّت الإضافة كما كنتَ تفعل في ما مضى. في صفحة تثبيت الإضافة، اضغط على رابط «تفعيل في الشبكة». ستعمل الإضافة الآن على جميع المواقع في الشبكة، ولن يتمكن مدراء المواقع من تعطيلها. لكن ماذا لو أردت أن تُفعِّل إضافةً ما في موقعٍ معيّن؟ يمكنك فعل ذلك بتثبيت الإضافة كمدير للشبكة، ثم تفعيلها لذاك الموقع. في لوحة تحكم مدير الشبكة، اذهب إلى «Plugins > Add New» (إضافات > أضف جديد) وثبت الإضافة كما تعودت. سأنزِّل إضافة WooCommerce كما هو ظاهر في الصورة التالية. ربما لا تريد تفعيل إضافة WooCommerce لكل المواقع في شبكتك إلا إذا كانت الشبكة مخصصة لمالكي المتاجر: في صفحة تثبيت الإضافة، اضغط على رابط العودة إلى صفحة الإضافات. اذهب إلى لوحة تحكم مدير الموقع الذي تريد تفعيل الإضافة فيه واضغط على رابط «إضافات» في شريط الإدارة. اضغط على رابط «تفعيل» الظاهر تحت اسم الإضافة التي تريد تفعيلها، وذلك كما في مواقع ووردبريس العادية. يجب أن تُفعَّل الإضافة الآن، كما هو ظاهر في لقطة الشاشة الآتية: ضبط إعدادات الشبكة آخر مجموعة من الصفحات التي عليك أن تستعملها كمدير للشبكة هي صفحة إعدادات الشبكة. هنالك صفحتان هما: تهيئة الشبكة (Network Setup) التي تُظهِر ما رأيتَه أثناء تثبيتك للشبكة مع الشيفرة التي ستحتاج إلى إضافتها إلى ملفَي wp-config.php و ‎.htaccess. يمكنك الرجوع إلى هذه الصفحة إذا حدثت معك مشاكل في المستقبل وعليك أن تُعدِّل الملفين السابقين. إعدادات الشبكة (Network Settings) التي تعطيك إمكانية تعديل ضبط شبكتك. للوصول إلى صفحة إعدادات الشبكة، اذهب إلى «Settings > Network Settings» (الإعدادات > إعدادات الشبكة) للدخول إلى صفحة الضبط الآتية: الإعدادات التي يمكنك تخصيصها هي: عنوان الشبكة البريد الإلكتروني لمدير الشبكة إعدادات التسجيل: هل تريد أن يتمكن المستخدمون من تسجيل حسابات و/أو مواقع، أم أن يُضيف مدراءُ المواقع المستخدمين، وما هي نطاقات البريد الإلكتروني وأسماء المواقع المحجوبة. إعدادات المواقع الجديدة: محتوى رسالة البريد الإلكتروني الترحيبية لمدراء المواقع والمستخدمين والصفحة الرئيسية، والمنشور والتعليق الافتراضي الذي سيُنشَأ على المواقع الجديدة. إعدادات الرفع: أنواع الملفات المسموحة والحجم المسموح الأقصى للملف المرفوع. إعدادات اللغة: اللغة الافتراضية للموقع. إعدادات القائمة: تفعيل أو تعطيل قائمة الإضافات لمدراء المواقع. يمكنك تعطيل هذه القائمة لمنع تفعيل أو تعطيل الإضافات. سنعود إلى هذه الصفحة وسنشرحها بالتفصيل لاحقًا في السلسلة عندما نتعلم كيف نضبط عملية تسجيل المستخدمين وإنشاء المواقع. تفعيل وضبط شبكة متعددة المواقع أسهل مما تتخيل أصبحتَ الآن تعرف كل ما يلزمك لتهيئة شبكة متعددة المواقع وضبطها، بما في ذلك إضافة مواقع جديدة، وتثبيت وتفعيل القوالب والإضافات. في المرحلة القادمة من هذه السلسلة، سنتعلم عن عملية إنشاء الموقع، وسنُفعِّل إمكانية إنشاء المواقع من قِبل المستخدمين وضبط العملية لتحسين تجربة المستخدم. سنفعل بعض هذه الأمور عبر صفحات الضبط وبعضها عبر كتابة بعض الشيفرات أو استخدام الإضافات. ترجمة –وبتصرّف– للمقال WordPress Multisite Masterclass: Activation and Configuration لصاحبته Rachel McCollin.
  6. أهلًا بك مجددًا في دورتنا التدريبية، سنشرح في هذا الدرس من السلسلة كيفية تفعيل ميزة تعدد المواقع وتشغيل شبكتك. سأشرح لك عملية التثبيت، ثم سأريك كيف تُنشِئ موقعًا في شبكتك، وتضيف المستخدمين، وتُثبِّت القوالب والإضافات وتضبط خيارات الشبكة. سأشرح لك في هذه السلسلة كل ما تحتاج معرفته لإنشاء شبكتك الخاصة، وطريقة إضافة مواقع إليها، أو السماح للمستخدمين بإضافة مواقعهم الخاصة، وكيفية إدارة الشبكة. ستتعلم أيضًا كيف تتأكد أنَّ شبكتك آمنة وأنَّ أداءها عالٍ، وكيف تُنشِئ مجتمعًا ناجحًا من المستخدمين والمواقع. قبل أن نبدأ في هذا الجزء من السلسلة التعليمية، أنصحك أن تقرأ الدرسين الأولين: مدخل إلى ووردبريس مُتعدّد المواقع أمور إضافية يجب أن تعرفها قبل أن تُطلق أول شبكة لك على ووردبريس مُتعدّد المواقع اللذان يوفران تقديمًا إلى ميزة تعدد المواقع في ووردبريس. أقرأتهما من قبل؟ رائع! فلنبدأ. ما الذي ستحتاج له لكي تتابع دروسنا في هذه السلسلة، فستحتاج إلى ما يلي: نسخة ووردبريس مُثبَّتة. قد تكون هذه النسخة موجودةً عندك من قبل أو أن تكون قد ثبتها حديثًا. أنا أرى أن تعمل على نسخةٍ جديدةٍ لكي تحصل على أغلبية الخيارات ولكي تتفادى خطر تعطيل موقعك. لا تفعل ذلك على موقعٍ إنتاجي قبل أن تأخذ نسخةً احتياطيةً أولًا! محرر شيفرات برمجية لتعديل ملفَي wp-config.php و ‎.htaccess الخاصَين بموقعك. سأستخدم محرر Coda لنظام ماك الذي يتضمن عميل FTP أيضًا؛ يمكنك اختيار أي محرر يعجبك. إن لم يتضمن محررك عميل FTP مُضمَّن داخله، فستحتاج إلى عميل FTP خارجي ليسمح لك بتنزيل ورفع ملفاتك إلى موقعك، مثل برنامج FileZilla. إذا كنت تُفضِّل أن تعمل على موقعٍ محلي بدلًا من موقعٍ يعمل على خادومٍ بعيد، فيمكن أن تستعمل نسخة ووردبريس مثبتة على خادوم محلي مثل MAMP أو ما شابهه (ولن تحتاج حينها إلى استخدام FTP لكن ذلك لن يغنيك عن محرر الشيفرات). سأفترض أنَّك معتادٌ على التعامل مع واجهة ووردبريس وأنَّك لا تخشى أن تُعدِّل الملفات مباشرةً، على الرغم من أنَّنا لن نفعل ذلك كثيرًا، لذا لا تقلق! تفعيل ميزة تعدد المواقع على نسخة ووردبريس هذه الميزة لا تتطلب تنزيل وتثبيت برمجيات جديدة لأنها جزءٌ لا يتجزأ من ووردبريس، لكن عليك تفعيلها لكي تجعلها تعمل. قبل أن تبدأ قبل أن تُفعِّل ميزة تعدد المواقع، فعليك أن تُقرِّر فيما إذا كنت تريد استخدام النطاقات الفرعية أو المجلدات الفرعية لمواقع شبكتك. هذه تذكرة سريعة ذكرناها سابقًا تبيّن لك معناها: استخدام النطاقات الفرعية يعني أنَّ لكل موقع رابط URL مثل http://site1.yournetwork.com، إذا كنت تخطط للسماح للآخرين بإنشاء مواقعهم الخاصة، فعليك أن تتأكد أنَّك تستطيع استخدام النطاقات الفرعية غير المحدودة في نطاقك الأساسي (عليك أن تراجع ذلك مع استضافتك). استخدام المجلدات الفرعية يعني أنَّ لكل موقع رابط URL مثل http://yournetwork.com/site1، لا يمكنك انتقاء هذا الخيار على موقعٍ موجودٍ مسبقًا والذي تحاول تحويله إلى شبكة لأن ذلك قد يسبب مشاكل مع روابط URL الموجودة مسبقًا في موقعك. إذا كنتَ تُفعِّل ميزة تعدد المواقع على موقعٍ محلي (أي موقع يعمل على حاسوبك المحلي)، فلن يُسمَح لك باستخدام النطاقات الفرعية عندما تحاول ضبط الشبكة، وإنما عليك استخدام المجلدات الفرعية. ضبط النطاقات الفرعية ملاحظة: لو أردت استعمال المجلدات الفرعية، فتجاوز هذه الفقرة. إذا كنت تستخدم النطاقات الفرعية وتتوقع أن تُنشَأ الكثير من المواقع على شبكتك، أو أنَّ المستخدمين سيُنشؤون مواقع خاصة بهم، فلن تعمل النطاقات الفرعية عملًا سليمًا إلا إذا كنت قد ضبطتَ ما يسمى «wildcard subdomains». أما إذا كنت تنوي ربط المواقع في شبكتك بنطاقات خارجية، أو لم تكن تمانع أن تضبط كل نطاق فرعي يدويًا عندما تُنشِئ موقعًا جديدًا، فحينها لن تحتاج إلى تفعيل wildcard subdomains. يمكنك أن تضبط النطاقات الفرعية عبر cPanel، التي يجب أن يعطيك مزود الاستضافة وصولًا إليها (راجع الدعم الفني إن لم تكن متأكدًا). ثم عبر cPanel اذهب إلى «Domains > Subdomains» لكي ترى الصفحة المسؤولة عن ضبط النطاقات الفرعية. هذه لقطة شاشة لموقعٍ ضبطتُ فيه wildcard subdomains: لضبط نطاق فرعي معيّن، عليك أن تضيفه إلى حقل «Subdomain» ثم الضغط على Create، فلو أضفتَ موقعًا إلى شبكتك له الرابط http://new-site.yournetwork.com فأضف new-site كقيمة لذاك الحقل. بشكلٍ بديل، يمكنك أن تضبط wildcard subdomains وذلك بكتابة رمز النجمة * في حقل «Subdomain» ثم اضغط على Create، وبهذا فلن تحتاج إلى إنشاء أيّة نطاقات فرعية يدويًا. ملاحظة: بعض شركات الاستضافة الرخصية لا يسمحون بتفعيل wildcard subdomains وبعضهم لا يعطيك وصولًا إلى لوحة cPanel. إذا وقعت في هذه الحالة، فأنصحك أن تبحث عن شركة استضافة أفضل، لكن إن لم تستطع فاطلب منهم أن يضبطوا النطاقات الفرعية لك. تفعيل ميزة تعدد المواقع ها قد أصبحتَ جاهزًا لتفعيل ميزة تعدد المواقع! إن لم تُثبِّت ووردبريس، فثبتها كالمعتاد، إما باستخدام سكربت يوفره مزود خدمة الاستضافة، أو بتنزيل ووردبريس وتثبيتها يدويًا على خادومك أو جهازك المحلي. افتح ملف wp-config.php الذي يجب أن تجده في المجلد الذي ثبتت ووردبريس فيه، ثم ابحث عن السطر الآتي: /* That's all, stop editing! Happy blogging. */ أو عن السطر الآتي (في النّسخة العربية): /* هذا هو المطلوب، توقف عن التعديل! نتمنى لك التوفيق. */ قبل ذلك السطر مباشرةً، افتح سطرًا جديدًا واكتب فيه المحتويات الآتية: define('WP_ALLOW_MULTISITE', true ); احفظ ملف wp-config.php. الخطوة الآتية هي زيادة لوحة تحكم ووردبريس وتثبيت ميزة تعدد المواقع. في لوحة تحكم ووردبريس، اذهب إلى «Tools > Network Setup» (أدوات > تهيئة الشبكة). ستنتقل إلى صفحة لإنشاء شبكة المواقع، وعليك إدخال أو اختيار ما يلي: تثبيت على مسار فرعي / نطاق فرعي. اختر ما تشاء إن كان متاحًا. عنوان الشبكة. هذا الحقل مملوء مسبقًا ويمكنك تعديله إن شئت، وتستطيع تعديله لاحقًا في ضبط الشبكة. البريد الإلكتروني لمدير الشبكة. إن كان عنوان البريد مختلفًا عن الذي أدخلتَه مسبقًا، فعدِّله. اضغط على زر «Install» (تنصيب). ستؤخذ بعد ذلك إلى صفحة لتفعيل الشبكة، التي ستظهر فيها بعض الشيفرات التي عليك إضافتها إلى ملفَي wp-config.php و ‎.htaccses: افتح ملفَي wp-config.php و ‎.htaccess وعدلهما لكي يتوافقا مع الشيفرات الموجودة في الصفحة السابقة. إن لم تعثر على ملف ‎.htaccess على خادومك، فقد يكون السبب هو أنَّ الملفات المخفية غير ظاهرة: عدِّل خيارات مُحرِّرك النصي إذا كنت تستعمله للوصول إلى تلك الملفات. احفظ كلا الملفين. يجب أن تكون ميزة الشبكة متعددة المواقع مثبتة الآن، وعليك تسجيل الدخول مرةً أخرى لكي ترى لوحة التحكم: يمكنك الآن البدء بإضافة مواقع وإضافات وقوالب والمزيد… إنشاء موقع ستملك شبكتك موقعًا وحيدًا في البداية، ألا وهو الموقع الأساسي، الذي هو الموقع الذي بدأت باستخدامه قبل تفعيل ميزة الشبكة متعددة المواقع. يمكنك إضافة مواقع أخرى بنفسك –كمدير للشبكة– أو يمكنك تفعيل إمكانية إنشاء المستخدمين لمواقع خاصة بهم. سنتعلم كيفية تفعيل إنشاء مواقع للمستخدمين لاحقًا في هذه السلسلة، لذا سأريك هنا كيف تفعل ذلك بنفسك. اذهب إلى لوحة تحكم مدير الشبكة بالضغط على «My Sites > Network Admin» (مواقعي > إدارة الشبكة) من على شريط الإدارة في الأعلى. اذهب إلى «Sites > Add New» (المواقع > أضف جديد). اكتب عنوان الموقع (إما كمجلد فرعي أو كنطاق فرعي)، واسم الموقع، والبريد الإلكتروني لمدير الموقع، كما هو ظاهر في الصورة أدناه: ثم اضغط على زر «Add Site» (أضف موقعًا) وستُنشِئ ووردبريس موقعًا لك. إذا استخدمتَ عنوان بريدك الإلكتروني الخاص بمدير الشبكة، فستتمكن من رؤية الموقع عندما تمرر الفأرة فورق رابط «My Sites» (مواقعي) في شريط الإدارة أعلى الشاشة. أما لو لم تكن المدير، فيمكنك أن تراه في لوحة تحكم إدارة الشبكة. اضغط على «Sites > All Sites» (المواقع > كافة المواقع) لرؤية جميع المواقع في الشبكة. سترى في الصورة الآتية الموقع الجديد مذكورًا بالإضافة إلى الموقع الأساسي: لاحظ أنَّ رابط URL لجميع مواقعي طويلٌ بعض الشيء لأنني ثبتتُ الشبكة متعددة المواقع في مجلدٍ فرعي في موقعي الرئيسي؛ ربما الروابط الخاصة بك أقصر. تعديل وضبط المواقع يمكنك كمدير للشبكة أن تُعدِّل المواقع إما عبر لوحة التحكم الخاصة بها، أو عبر قسم Sites (المواقع) في لوحة تحكم مدير الشبكة؛ وهنالك بعض الأمور التي يمكنك فعلها من صفحة Sites (المواقع) فقط، مثل تفعيل قالب لموقعٍ ما. تعديل حالة موقع من صفحة Sites (المواقع) في لوحة تحكم مدير الشبكة، يمكنك تغيير حالة كل موقع من مواقع الشبكة؛ الخيارات المتاحة أمامك هي: تعطيل. هذا ما سيحدث لموقعٍ على الشبكة لو قام مدير الموقع بحذفه. لن يتمكن مدير الموقع من الوصول إليه ولا يمكن للآخرين زيارته، لكنك –كمدير للشبكة– تستطيع فعل ذلك. تستطيع أن ترى في الصورة الآتية موقعًا معطّلًا ظاهرًا باللون الأحمر في لوحة تحكم مدير الشبكة. صحيحٌ أنَّه مُعلَّم على أنه «محذوف»، إلا أنه لم يُحذَف بعد، وإنما معطّل فقط. يمكنك الضغط على زر «Activate» (تفعيل) لتفعيل الموقع مرةً أخرى. أرشفة. تأثير الأرشفة مشابه لتعطيل الموقع، عدا أنَّ هنالك رسالة خطأ ستظهر عندما يحاول الآخرون زيارة الموقع. لن يتمكن مدير الموقع أو الزوار من الوصول إلى الموقع، لكن يمكنك فعل ذلك بصفتك مديرًا للشبكة وذلك من صفحة Sites (المواقع) في لوحة تحكم مدير الشبكة. مزعج. هذا الخيار لا يحذف الموقع، لكنه لن يكون متاحًا للوصول لأي شخص بما في ذلك مدير الشبكة. هذه هي الخطوة النهائية قبل الضغط على زر الحذف. حذف. هذا الخيار يحذف الموقع، مع جميع جداول قاعدة البيانات وجميع الملفات المرفوعة والمرتبطة معه. استخدم هذا الخيار بحذر! لاختيار أي شيء مما سبق، ضع الفأرة فوق اسم الموقع في صفحة Sites ثم اضغط على الرابط الموافق. معلومات الموقع في لوحة تحكم مدير الشبكة، اذهب إلى Sites (المواقع)، ثم مرر الفأرة فوق أحد المواقع ثم اضغط على Edit (تحرير)؛ وهذا سيأخذك إلى ألسنة (tabs) لتحرير الموقع، وستبدأ افتراضيًا بلسان Info: يمكنك هنا أن تستعرض وتعدِّل المعلومات الأساسية المرتبطة بهذا الموقع، مثل حالته ورابط URL. أحيانًا أُنشِئ موقعًا وأرتكب خطأ إملائيًا عندما أكتب رابط URL الخاص به، فإن حدث هذا معك، فهذا هو المكان الملائم لتصحيحه. مستخدمي الموقع يمكنك إضافة وتعديل مستخدمي الموقع بالضغط على لسان Users (أعضاء): سترى هنا كل مستخدمي الموقع، استخدم هذه الصفحة لإضافة مستخدم موجود مسبقًا في شبكتك إلى هذا الموقع، أو لإضافة مستخدم جديد؛ لكن أيًّا تكن الخيارات التي ستعتمدها، إلا أنَّك ستحتاج إلى تحديد دور (أو «رتبة») المستخدم؛ والتي ستكون رتبة المستخدم لهذا الموقع، وليس للشبكة ككل. قوالب الموقع اضغط على لسان Themes (قوالب) لتفعيل القوالب لمواقع معينة. هذا مفيدٌ إن كنت تدير شبكةً لمواقعك أو لمواقع عملاءك، وتريد أن يملك كل موقعٍ قالبًا خاصًا به. وبهذا الطريقة، لن تُفعِّل أنت (أو مدراء تلك المواقع) بالغلط القالب غير المخصص للموقع. إذا كان مستخدموك ينُشؤون مواقعهم الخاصة، فربما تريد توفير قوالب إضافية لهم، وهذا ما يمكنك فعله بتمكين تلك القوالب للشبكة (سنتحدث عن المزيد من هذا الموضوع قريبًا). يمكنك أن ترى قالبين مثبتين على الشبكة لكن غير مفعلين في لقطة الشاشة الآتية. القوالب المُفعّلة لكامل الشبكة لا تظهر هنا، حيث لا حاجة إلى تفعليها للمواقع كلًا على حدة لأنها مفعلة من قبل. لتفعيل قالب لموقعٍ ما، اضغط على رابط Enable (تفعيل) الظاهر تحت اسمه. ثم ستظهر في صفحة القوالب في لوحة تحكم الموقع. إعدادات الموقع يمنحك لسان Settings (إعدادات) وصولًا إلى المزيد من إعدادات الضبط للمواقع الموجودة على شبكتك: لديك هنا وصولٌ لجميع الخيارات المتعلقة بالموقع، أميل إلى تفادي التعديل على هذه الصفحة وأفضِّل استخدام لوحة تحكم مدير الموقع لكل موقع، لكن من الجيد وجود هذه الصفحة إذا تعذر الوصول إلى لوحة التحكم الخاصة بالموقع لسببٍ من الأسباب (مثلًا، النطاق لا يعمل) وتريد أن تُعدِّل في الإعدادات لكي يعمل الموقع مجددًا. إذا كنتَ تنوي تعديل الإعدادات الموجودة في هذه الصفحة، فاحذر أن تُعيد الكتابة فوق الإعدادات التي أجراها مدير الموقع. ترجمة –وبتصرّف– للمقال WordPress Multisite Masterclass: Activation and Configuration لصاحبته Rachel McCollin.
  7. أهلًا بك مجددًا في الدرس الثاني من سلسلة تعلم الاستفادة من ميزة تعدد المواقع في ووردبريس. شرحنا في الدرس السابق بعض الأمور الأساسية التي عليك أن تضعها بعين الاعتبار عند التعامل مع شبكة من المواقع، وسنكمل ذلك في درسنا هذا. النطاقات اختلافٌ آخر في الشبكة متعددة المواقع هو النطاقات (domains) المستخدمة لكل موقع على الشبكة، إذا يملك كلٌ منها رابطًا خاصًا به، وإما أن يكون ذلك عبر نطاق فرعي (subdomain) أو عبر وضع الموقع في مجلد فرعي ضمن نطاق الموقع الرئيسي. حيث لدينا الحالتين الآتيتين: استخدام النطاقات الفرعية يعني أنَّ لكل موقع رابط URL مثل http://site1.yournetwork.com، إذا كنت تخطط للسماح للآخرين بإنشاء مواقعهم الخاصة، فعليك أن تتأكد أنَّك تستطيع استخدام النطاقات الفرعية غير المحدودة في نطاقك الأساسي (عليك أن تراجع ذلك مع استضافتك). استخدام المجلدات الفرعية يعني أنَّ لكل موقع رابط URL مثل http://yournetwork.com/site1، لا يمكنك انتقاء هذا الخيار على موقعٍ موجودٍ مسبقًا والذي تحاول تحويله إلى شبكة لأن ذلك قد يسبب مشاكل مع روابط URL الموجودة مسبقًا في موقعك. إذا كنتَ تُفعِّل ميزة تعدد المواقع على موقعٍ محلي (أي موقعٍ يعمل على حاسوبك المحلي، راجع مقالة كيفية تنصيب ووردبريس محليا باستخدام MAMP)، فلن يُسمَح لك باستخدام النطاقات الفرعية عندما تحاول ضبط الشبكة، وإنما عليك استخدام المجلدات الفرعية. إذا كنتَ تُفعِّل ميزة تعدد المواقع على تثبيت ووردبريس قديم نسبيًا، فلن يُسمَح لك باستخدام المجلدات الفرعية، وعليك حينها أن تستعمل النطاقات الفرعية؛ هذا لأن موقعك قد يحتوي على منشورات أو صفحات ذات روابط قد تتعارض مع روابط المجلدات الفرعية للمواقع الجديدة التي ستُنشَأ على الشبكة. لكي تتفادى المشاكل في الروابط، فستتغير بنية الروابط الدائمة (paramlinks) في موقعك الرئيسي عندما تُفعِّل الشبكة متعددة المواقع الموجودة ضمن مجلدات فرعية؛ فلو كان لديك منشورٌ في http://yoursite.com/name-of-my-post فسيُنقَل إلى http://yoursite.com/blog/name-of-my-post. أُكرِّر أنَّ الأمر يحدث لمنع حدوث تضارب بين أسماء المنشورات والمجلدات الفرعية التي تُمثِّل المواقع الأخرى في شبكتك. سنشرح النطاقات وكيفية ربطها بالتفصيل في درسٍ لاحقٍ في هذه السلسلة. حالات استخدام شبكة متعددة المواقع يمكن توظيف الشبكات متعددة المواقع لعدِّة أغراض، بعضها مفيدٌ للمجتمع، وبعضها مفيدٌ للشركات. وهي تتضمن: إدارة مواقعك الخاصة استضافة المواقع للعملاء استضافة أكثر من موقع لمنظمة واحدة دفع الآخرين لإنشاء مواقعهم دعم المجتمع لننظر إلى كل حالة على حدة. إدارة مواقعك الخاصة أتحدث إلى الكثير من مستخدمي ومطوري ووردبريس الذي يملكون عددًا كبيرًا من المواقع. ربما يدعمون فيها المشاريع الشخصية، أو ربما لأغراض تجارية أخرى، أو ربما لكي يستعرضوا تقنياتٍ مختلفة. مثلًا، شبكة المواقع الموجودة في rachelmccollin.co.uk تحتوي على عشرات المواقع التي أنشأتها لغرض استعراض مختلف التقنيات التي أكتب عنها في الدروس والكتب والمقالات. أغلبية تلك المواقع صغيرة وفيها إضافة أو قالب واحد مفعل الذي يستعمل الشيفرات الموجودة في الدروس. والأخرى كبيرة لتضم كتابًا كاملًا. إبقاء هذه المواقع مرتبطةً بشبكة يساعدني كثيرًا عندما أحتاج إلى تحديث إضافة أو قالب أو حتى ترقية نسخة ووردبريس نفسها. الكثير من القوالب التي أستعملها هي «قوالب أبناء» (child themes) للقالب الافتراضي في ووردبريس (Twenty Sixteen)، ولا أحتاج سوى إلى تخزين وتحديث نسخة واحدة من قالب Twenty Sixteen. إذا كنت من الأشخاص الذين يحبون إنشاء مواقع شخصية، فميزة تعدد المواقع ستساعدك كثيرًا في إدارتها. وتستطيع أيضًا أن تستعمل نطاقًا مختلفًا لكل موقع، وحينها لن يعلم أحدٌ أنَّك تستعمل شبكةً من المواقع. استضافة المواقع للعملاء استعمال ميزة تعدد المواقع لاستضافة مواقع العملاء هي طريقةٌ ذات كفاءةٍ عالية وتستعمل مساحةً تخزينيةً أقل على الخادوم. تطور الشركة التي أعمل بها مواقع للشركات الصغيرة وتستضيفها. بالطبع لا نستضيف كل مواقع عملائنا في شبكةٍ واحدة، لأن الأمر سيصبح فوضويًا قليلًا؛ لكن نسبةً لا بأس بها من المواقع التي نستضيفها هي مواقع صغيرة فيها أقل من 20 صفحة. وجميع تلك المواقع تستعمل «قوالب أبناء» لنفس القالب التطويري (الذي برمجتُه بنفسي)، فلو أردتُ أن أُحدِّث القالب التطويري فسأحتاج إلى تحديثه مرةً واحدةً على الشبكة، والأمر سيانٌ للإضافات. هذا يجعل عملية التحديث أسهل وأسرع وأكثر كفاءة. لا تنسَ أنَّه بالإمكان استخدام نطاقات مختلفة لكل موقع، وبهذا لن يعلم أحدٌ أنَّ كل تلك المواقع مستضافةٌ على شبكةٍ واحدة. باستخدام إضافات مثل Support System و Snapshot، أتمكن من استخدام الشبكة متعددة المواقع لتحسين جودة الخدمة التي أقدمها لعملائي. إضافة Snapshot هي إضافة متوافقة مع الشبكات متعددة المواقع التي تسمح لي بضبط كل خيارات النسخ الاحتياطي من مكانٍ واحد؛ وإضافة Support System تسمح لي باستقبال والاستجابة إلى طلبات الدعم من العملاء. إذا كنتَ تستعمل شبكةً، فعليك توخي الحذر كما لو كنت تُجري تحديثًا، ولا تنسَ أن تختبر الإضافات والتحديثات على موقعٍ تطويري أولًا! أملك نسخةً محليةً من شبكتي، التي أُفعِّل فيها أيّة تحديثات لأختبرها قبل أن أُفعِّلها على الشبكة الإنتاجية. هذه المواقع للعملاء، لذا توخى الحذر معها! استضافة أكثر من موقع لمنظمة واحدة تخيل أنَّك مدير مواقع الويب لمنظمة كبيرة تعمل في بلدانٍ كثيرة. ربما لديك مواقع منفصلة لكل دولة من الدول، تخيل كم سيؤلمك رأسك جراء إدارتها جميعًا! أو ربما لديك عدِّة مواقع بنفس اللغة لكن لمختلف الأقسام. الشبكة متعددة المواقع تجعل من السهل الحصول على مواقع منفصلة لكن يمكن إدارتها من مكانٍ وحيد. إذا كانت جميع مواقعك تستعمل «قالب ابن» لقالب رئيسي وحيد فعليك أن تخزنه وتُحدِّثه بمكان واحد فقط. وإذا كنت تستعمل نفس الإضافات في كل مواقعك، فستستفيد من الشبكة متعددة المواقع خير استفادة؛ وكما أنَّك تستطيع أن تنشر نفس المحتوى في أكثر من موقع، ويمكنك إنشاء مجتمع من مستخدمي منظمتك، وتستطيع أن تُنشِئ موقعًا يُستعمَل كقالب لكي تستفيد منه عندما تُنشِئ موقعًا جديدًا لفرعٍ جديدٍ في دولةٍ ما أو لقسمٍ ما. جني الأموال عبر الشبكة متعددة المواقع قد تستفيد من الشبكة متعددة المواقع لدعم شركتك وجني الأموال. إذا كنت قد ضبطتَ شبكتك لكي تسمح للآخرين بإنشاء مواقعهم، فهنالك مختلف الأنواع لتقاضي الأموال عبر الشبكة، وهذا يتضمن: الدفع مقابل إنشاء موقع الدفع مقابل ميزات مُحسَّنة الدفع مقابل إضافات أو قوالب معينة الدفع للدعم الفني والخدمات الإضافية الدفع لقاء الحصول على نطاق منفصل نحن نستعمل بعض تلك الطرق في موقع Edublogs؛ إذ أنَّ إنشاء الموقع مجانيٌ، لكن إن كنت تريد ميزاتٍ متقدمة وإضافات أخرى، فعليك أن تدفع لقاء ذلك. موقع WordPress.com يعمل بشكلٍ مشابه. دعم المجتمع ليس الغرض من الشبكة متعددة المواقع هو جني الأموال فحسب، وإنما هي أداةٌ رائعة لدعم المجتمعات، حيث تسمح بإنشاء شبكة من المواقع التي يديرها المستخدمون الذين يشكلون جزءًا من المجتمع. وقد يكون هذا ناديًا أو مجموعةً من الأشخاص ذوي الاهتمامات المشتركة. لا تسمح الشبكة المتعددة المواقع لأعضاء مجتمع بإنشاء المواقع فقط، لكنها تسمح لهم أيضًا بالتواصل مع بعضهم بعضًا، بالإضافة إلى متابعة منشوراتهم، ومشاركة المحتوى. وهي توفر موردًا ممتازًا للمعلومات لأعضاء مجتمعك وتجعلهم يبقون دومًا على اتصال. للشبكات متعددة المواقع الكثير من الاستخدامات والميزات بعد أن قرأت أول درسين من هذه السلسلة، فيجب أن تتكون لديك صورة عن أهمية ومدى فائدة خاصية الشبكات متعددة المواقع في ووردبريس. سنشرح في الأجزاء القادمة من هذه السلسلة بعض الجوانب العملية لإنشاء وإدارة شبكة مواقع ووردبريس؛ بما في ذلك طريقة تفعيل ميزة تعدد المواقع وضبط الشبكة، وتفعيل وتحسين طريقة إنشاء المواقع من قِبل المستخدمين، وربط النطاقات مع مواقع في الشبكة، وطريقة إنشاء مجتمع، وإدارة شبكتك. ترجمة –وبتصرّف– للمقال WordPress Multisite Masterclass: Getting Started لصاحبته Rachel McCollin.
  8. إذا كنتَ من مطوري ووردبريس، فستُتحمّس للاستفادة من ميزة تعدد المواقع (Multisite)، ولهذا السبب قدمنا لك هذه الدورة التدريبية المؤلفة من عشر مقالات كي تحترف هذه الميزة المفيدة. ميزة تعدد المواقع لها فائدة كبيرةٌ في أنها ستساعدك على إنشاء شبكة من المواقع لتلبية مختلف الاحتياجات ولمختلف الأغراض، والتي تستطيع تخصيصها لتسهيل بعض الأمور لمستخدميك ولجعل شبكتك من المواقع تعمل بكفاءة عالية… ستتعلم في هذه الدورة كل شيء ستحتاج له كي تُنشِئ شبكتك الخاصة، وتضيف المواقع إليها أو تسمح للمستخدمين بإضافة مواقع إلى الشبكة وإدارتها. وستتعلم كيف تحافظ على أمان شبكتك وتضمن أداءها أداءً عاليًا وكيف تُنشِئ مجتمعًا ناجحًا من المستخدمين والمواقع. سنبدأ بأخذ فكرة عامة عن ميزة تعدد المواقع في هذا الجزء، وسأشرح لك فيه: تمهيد إلى تعدد المواقع: ما يمكنك أو لا يمكنك فعله ميزات الشبكات متعددة المواقع الفرق بين شبكة مُنشَأة عبر تعدد المواقع، وبين المواقع المفردة حالات استخدام تعدد المواقع لنبدأ جولتنا! مدخل إلى تعدد المواقع في ووردبريس خاصية تعدد المواقع هي جزءٌ من أساس ووردبريس، إلا أنها كانت نظامًا منفصلًا يدعى «WPMU» الذي دُمِجَ مع أساس ووردبريس في الإصدار 3.0. هذا يعني أنَّك تستطيع تفعيل تعدد المواقع في أي موقع يستخدم ووردبريس بكل سهولة، حتى لو كان موقعك يعمل منذ أشهر أو سنوات. لكن هنالك اختلافٌ أساسيٌ بين إضافة ميزة تعدد المواقع على موقعٍ موجودٍ مسبقًا وبين إضافته على موقعٍ جديد؛ وهذا الاختلاف مرتبط بالنطاقات الفرعية والمجلدات الفرعية. سنشرح ذلك بالتفصيل لاحقًا عندما نلقي نظرةً على البنية الهيكلية لشبكة متعددة المواقع. تسمح ميزة تعدد المواقع لك بإنشاء شبكة من المواقع، وهذا يعني أنَّ هنالك تثبيت ووردبريس وحيد، وتستطيع عبره أن تحصل على أي عدد تريده من المواقع. أنا أعي ما أقول، تستطيع أن تحصل على أي عدد من المواقع! فموقع WordPress.com هو شبكةٌ متعددة المواقع يُشغِّل حوالي 10% من مواقع الويب، وموقع Edublogs هو شبكةٌ متعددة المواقع الذي يُشغِّل أكثر من ثلاث ملايين مدونة تعليمية. ربما لديك تصور أنَّ هنالك بعض الإجراءات الإضافية عندما يأتي الأمر إلى إدارة مثل هذه الشبكات الضخمة، مثل توزيع وسائط التخزين على أكثر من خادوم؛ لكن الفكرة الأساسية هي استخدام ووردبريس كشبكة متعددة المواقع. لن تتعلم في هذه الدورة التدريبية كيف تُنشِئ وتدير شبكات ضخمة مثل Edubolgs –هذا يحتاج إلى أعوام من الخبرة والتجربة– لكنك ستتعلم كيف تُنشِئ شبكتك الخاصة من المواقع التي يمكنك استخدامها لأغراضٍ عدّة. هذا هو تعريف «تعدد المواقع» من دليل ووردبريس للمطورين: حسنًا، الشبكة متعددة المواقع هي ميزة من ميزات ووردبريس التي تسمح لك بإنشاء شبكة خاصة بك من المواقع، ويمكن أن يُدار كل موقع من تلك المواقع بشكلٍ منفصل، وأن يشير إليه نطاقٌ خاصٌ به لكي يستطيع الزوار الوصول إليه، ولن يستطيعوا أن يميّزوا أنَّ موقعك جزءٌ من شبكةٍ ما من المواقع. ستُسهِّل هذه الميزة الأمر عليك كثيرًا إذا كنت تدير عدِّة مواقع ولم تكن تريد أن تُتُعِبَ نفسك بمراقبة كل موقع على حدة، بما في ذلك تحديث الإضافات، والتعامل مع المشاكل الأمنية والمشاكل في الأداء، وإضافة المستخدمين …إلخ. هذه الميزة مفيدة للغاية إن كنت تريد أن تسمح لمستخدميك أن يتواصلوا مع بعضهم بعضًا عبر مجتمع (community) الذي تستطيع استضافته على شبكتك. ميزات تعدد المواقع هنالك عدّة ميزات لتعدد المواقع في ووردبريس مقارنةً مع إدارة عدد من المواقع لها أكثر من تثبيت ووردبريس: مساحة التخزين. هنالك نسخةٌ واحدةٌ فقط من ملفات ووردبريس ونسخةٌ واحدةٌ أيضًا من كل قالب أو إضافة مُخزَّنة على خادومك. التحديثات. ستحتاج إلى تحديث تثبيت ووردبريس والقوالب والإضافات مرةً واحدةً فقط بدلًا من فعل ذلك لكل موقعٍ على حدة (لكن عليك تجربة التحديث على موقع تجريبي أولًا!). المجتمع. يمكنك استخدام شبكة متعددة المواقع لإنشاء مجتمع من المواقع والمستخدمين. الخيارات المتاحة إليك تتضمن نشر المحتوى على أكثر من موقع في آنٍ واحد، والسماح للمستخدمين بمتابعة (follow) بعضهم بعضًا، والمزيد… سأشرح هذه النقطة بالتفصيل في هذه الدورة. إنشاء المواقع. تُمكِّنك ميزة تعدد المواقع من السماح للمستخدمين بإنشاء مواقع خاصة بهم في شبكتك. وهذه الميزة رائعة إذا كنت تدير شبكةً خاصةً بالمدرسة أو لنادٍ معيّن، أو إذا أردت أن تتلقى مقابلًا ماديًا لقاء إنشاء مواقع للآخرين. هنالك جزءٌ يتحدث عن إنشاء المواقع في هذه الدورة. الاختلافات الأساسية بين شبكة من المواقع والمواقع المفردة قبل أن تبدأ بالعمل على ميزة تعدد المواقع، يجب أن أنوِّه إلى بعض الاختلافات الرئيسية بينها وبين طريقة تثبيت ووردبريس الاعتيادية (أدعوها «المواقع المفردة» [standalone sites]). من الجيد أن تفهم هذه الاختلافات أولًا، لأنها ستساعدك في اتخاذ قرارك فيما إذا كانت شبكةٌ من المواقع المتعددة هي الأداة المثالية لك، وستساعدك أيضًا عندما تبدأ بإنشاء وإدارة شبكتك. لننظر إلى بعض هذه الاختلافات. ملاحظة عن الاصطلاحات: إذا كنت تستخدم مواقع ووردبريس المفردة من قبل، فستظن أنَّ «التثبيت» (installation) هو موقعك. لكنني سأستخدم هذا المصطلح في هذه الدورة بطريقةٍ مختلفة. الشبكة تمثل تثبيت ووردبريس، التي تتضمن عددًا من المواقع. والموقع هو أحد المواقع في الشبكة، وكانت تسمى تلك المواقع في الإصدارات القديمة من ميزة تعدد المواقع بالمدونات (blogs)، لكن ذلك تغيّر في إصدار 3.5 من ووردبريس. إدارة الشبكة عندما تُنشِئ شبكةً متعددة المواقع، فستصبح «مدير الشبكة» (super admin)، وهذا يعني أنَّ لديك القدرة على إدارة الشبكة بالإضافة إلى إدارة المواقع الموجودة فيها كُلًّا على حدة. عندما تُفعِّل الشبكة، فستشاهد بعض العناصر الإضافية في لوحة التحكم، وهي ظاهرةٌ في لقطة الشاشة الآتية: عناصر القائمة الإضافية هي: عنصر قائمة جديد اسمه «My Sites» (مواقعي) رابط «My Sites» (مواقعي) في شريط الإدارة العلوي الذي سيأخذك إلى صفحات إدارة الشبكة. صفحات إدارة الشبكة هي المكان الذي تُثبِّت وتُفعِّل فيه القوالب والإضافات وإنشاء وإدارة المواقع والمستخدمين: تتضمن قائمة إدارة الشبكة ستة أقسام: Dashboard (الرئيسية) – إدارة التحديثات والترقيات على الشبكة. Sites (المواقع) – إنشاء مواقع في الشبكة وإدارة المستخدمين والقوالب وضبط الخيارات لكلٍ منها. Users (أعضاء) – إضافة مستخدمين إلى شبكتك بنفس الطريقة التي كنتَ تُضيفهم فيها إلى المواقع المفردة. Themes (قوالب) – تثبيت القوالب، ومن ثم ستتمكن من تفعيلها لكامل الشبكة أو لمواقع معيّنة على الشبكة. Plugins (إضافات) – تثبيت الإضافات وتفعيلها على كامل الشبكة إن شئت. قد تتمكن من تفعيل بعض الإضافات لكامل الشبكة فقط، مثل إضافات النسخ الاحتياطي؛ بينما يمكن لبعضها الآخر أن يُفعَّل لكامل الشبكة إن شئت أن تعمل تلك الإضافة على جميع المواقع، أو يمكن لمدراء المواقع أن يختاروا ما الذي يريدون تفعيله على موقعهم. Settings (الإعدادات) – إدارة ضبط الشبكة. هذه هي بعض جوانب إدارة الشبكة التي قد تُحيّر بعض المبتدئين: الموقع الأساسي أو الرئيسي (Base site). عندما تُنشِئ شبكةً، فسيكون هنالك موقعٌ واحدٌ على الأقل لتبدأ معه ألا وهو «الموقع الرئيسي». هذا هو الموقع الذي بدأت فيه عبر تثبيت ووردبريس، وسيكون رابط URL الأساسي هو اسم النطاق (domain name). ستتمكن –كمدير للشبكة– أن تكون مديرًا لهذا الموقع أيضًا، ويمكنك إضافة مستخدمين آخرين بنفس طريقة إضافة المستخدمين للمواقع المفردة؛ لكن لا يمكنك إزالة هذا الموقع من الشبكة. تستطيع أيضًا أن تُفعِّل القوالب أو الإضافات كما في أي موقع آخر على الشبكة. تفعيل القوالب والإضافات. قد تتوقع أنك تستطيع تفعيل القوالب والإضافات بنفس الطريقة التي تعرفها. يمكنك تثبيت القوالب والإضافات عبر لوحة تحكم مدير الشبكة، لكن ستختلف الأمور عمّا اعتدت عليه بدءًا من هذه المرحلة. يمكنك أن تُفعِّل الإضافات على كامل مواقع الشبكة، أو ألّا تفعَّلها أبدًا، وفي هذه الحالة سيحتاج مدير الموقع إلى تفعيل الإضافات في صفحة الإضافات في لوحة تحكم الموقع. أما القوالب، فيمكنك أن تُمكِّن اختيارها عبر الشبكة، مما يُتيح لمدراء المواقع تفعيلها على موقعهم، أو يمكنك تمكين القوالب لمواقع معيّنة وذلك عبر صفحة «Sites» (المواقع) في لوحة التحكم، مما يعني أنَّ تلك المواقع هي المواقع التي تستطيع تفعيل القالب فقط ولن تتمكن بقية المواقع من رؤية القالب؛ قد تستفيد من هذه الميزة إن كنت تُدير شبكةً من مواقع العملاء ولدى كل موقع قالب خاصٌ به. إنشاء المستخدمين. يمكن لمدير الشبكة أو لمدراء المواقع إضافة المستخدمين؛ إذا أضفتُ مستخدمًا عبر لوحة تحكم مدير الشبكة، فسيُنشَأ حساب للمستخدم على الشبكة لكن دون أيّة امتيازات على المواقع الأخرى (بما في ذلك الموقع الرئيسي)؛ أما لو أضاف مدير موقعٍ ما مستخدمًا، فسيحصل المستخدم على وصول إلى ذاك الموقع فقط، لكن سيكون بإمكان بقية مدراء المواقع من إضافة المستخدم إلى مواقعهم أيضًا. التحديثات. عندما تُحدِّث قالبًا أو إضافةً أو نسخة ووردبريس نفسها، فعليك القيام بذلك من لوحة تحكم مدير الشبكة وستُطبَّق التغيرات على جميع المواقع في شبكتك. وهذا هو السبب وراء ضرورة اختبار أيّة تحديثات على موقعٍ تطويري قبل تطبيقها على شبكةٍ إنتاجية، فلو أدى تحديث إضافةٍ ما إلى حدوث خلل، فسيؤثر على جميع مواقع الشبكة التي تستعمل تلك الإضافة! يمكنك تثبيت إضافة تساعدك في التعرف على المواقع التي تستعمل قالبًا أو إضافةً معينة، وسنشرح ذلك بالتفصيل لاحقًا في هذه السلسلة. هنالك إمكانيات (capabilities) إضافية لمدير الشبكة مقارنةً بمدير الموقع: إمكانيات متعلقة بمدير الشبكة (أي superadmin): manage_network، و manage_sites، و manage_network_users، و manage_network_plugins، و manage_network_themes، و manage_network_options. إمكانيات كان يملكها مدير الموقع إن كان الموقع منفردًا ولكنها أصبحت متعلقة بمدير الشبكة في شبكة من المواقع: update_core، و update_plugins، و update_themes، و install_plugins، و install_themes، و delete_themes، و delete_plugins، و edit_plugins، و edit_themes، و edit_files، و edit_users، و create_users، و delete_users، و unfiltered_html. إمكانيات يملكها مدير الشبكة ومدير الموقع: activate_plugins، و delete_others_pages، و delete_others_posts، و delete_pages، و delete_posts، و delete_private_pages، و delete_private_posts، و delete_published_pages، و delete_published_posts، و edit_dashboard، و edit_others_pages، و edit_others_posts، و edit_pages، و edit_posts، و edit_private_pages، و edit_private_posts، و edit_published_pages، و edit_published_posts، و edit_theme_options، و export، و import، و list_users، و manage_categories، و manage_links، و manage_options، و moderate_comments، و promote_users، و publish_pages، و publish_posts، و read_private_pages، و read_private_posts، و read، و remove_users، و switch_themes، و upload_files. وهذا يعني أنَّ –كمدير شبكة– تستطيع أن تُعدل وتُدير المواقع الموجودة ضمن شبكتك. إدارة الموقع عندما يُنشَأ موقعٌ جديدٌ على شبكتك، فسيكون له مديرٌ خاصٌ به. فإذا أُنشِئ الموقع عبر مدير الشبكة، فسيكون هو مدير الموقع؛ أما لو أنشِئ الموقع عبر نموذج للتسجيل، فسيكون المستخدم الذي يُنشِئ الموقع هو مدير الموقع. من الممكن إضافة مدراء إضافيين لكل موقع كما لو كان موقع ووردبريس مفردًا. خصائص لوحة التحكم التي يستطيع مدراء المواقع الدخول إليها مختلفةٌ قليلًا عن المواقع المفردة. الاختلافات الجوهرية هي: تثبيت الإضافات والقوالب. لا يمكن لمدراء المواقع تثبيت إضافات أو قوالب. لكن إذا كان قالبٌ ما متاحًا على الشبكة أو متاحًا لموقعٍ معيّن، فيمكن لمدير الموقع أن يفعِّل القالب في صفحة القوالب بلوحة التحكم. وإذا أعطى مديرُ الشبكة مدراءَ المواقع امتيازاتٍ للتحكم بإدارة الإضافات، فيمكنهم تفعيل الإضافات، لكنهم لن يستطيعوا مشاهدة أيّة إضافات غير متاحة على الشبكة في صفحة الإضافات في لوحة التحكم، ولن يستطيع مدراء المواقع تحديث الإضافات أو القوالب. الضبط. هنالك بعض خيارات الضبط التي يستطيع مدير الشبكة الوصول إليها فقط؛ وهذا يتضمن الحجم الأقصى للملفات المرفوعة، وآلية تسجيل المستخدمين، وإعدادات المواقع الجديدة. لدى مدراء المواقع نفس الامتيازات وصفحات لوحة التحكم المتعلقة بإنشاء وتعديل المحتوى كما لو كان الموقع مفردًا، يمكنهم أيضًا إضافة مستخدمين جدد إلى مواقعهم، بما في ذلك المستخدمين الذي سبقَ وأن سجلوا على الشبكة، بالإضافة إلى المستخدمين الجدد. يمكن لمدراء المواقع أن يُفعِّلوا الإضافات غير المفعلة على كامل الشبكة إن سمح لهم مدير الشبكة بذلك. قد تستفيد من هذه الميزة إن كنت تسمح للأشخاص بإنشاء وإدارة مواقعهم بطريقة شبيهة بموقع edublogs أو WordPress.com. هيكلية الملفات تحتوي الشبكة متعددة المواقع على نفس ملفات ووردبريس كأي تثبيت آخر، لذا ستكون الملفات الموجودة في المجلد الجذر (أي المجلد الأساسي لووردبريس) ومجلد wp-admin ومجلد wp-includes متماثلة؛ وكذلك الأمر لملفات الإضافات والقوالب في مجلد wp-content. هذه هي طريقةٌ ذات كفاءةٍ عالية إذا كنت تُدير عدة مواقع: فبدلًا من تخزين كل قالب أو إضافة عدِّة مرات في عدة مواقع، يمكنك أن تخزن نسخة واحدة من القالب أو الإضافة على شبكة من المواقع ومن ثم تستعملها على أي عدد تريده من المواقع. الاختلاف الوحيد هو في كيفية هيكلة مجلد الملفات المرفوعة ضمن wp-content، حيث سيحتوي على مجلد uploads في المواقع المفردة الذي سيحتوي بدوره على مجلد لكل سنة، وفي ذاك المجلد عدِّة مجلدات للأشهر التي رُفعِتَ فيها الوسائط على الموقع. أما في شبكة من المواقع، فستخزن الملفات المرفوعة لكل موقع على حدة. ستُخزَّن الملفات المرفوعة للموقع الرئيسي بنفس طريقة تخزين الملفات المرفوعة للمواقع المفردة، وهذا مهم لأنك قد تفعل ميزة شبكة المواقع بعد أن أضفت محتوى ووسائط مرفوعة إلى الموقع الرئيسي، وبالتأكيد تريد أن تبقى تلك الملفات. لكن جميع المواقع الأخرى سيكون لها مجلد منفصل للوسائط المرفوعة، وذلك بإنشاء مجلد جديد باسم sites ضمن مجلد wp-content/uploads؛ وسيُنشَأ مجلد لكل موقع من مواقع الشبكة حيث يكون اسم المجلد هو مُعرِّف ID للموقع؛ إذ يملك كل موقع مُعرِّف ID رقمي خاص به يبدأ من الرقم 2. ومن ثم ستكون لتلك المجلدات نفس بنية مجلد uploads للمواقع المفردة (أي وجود مجلدات لكل سنة، ولكل شهر). هذا يعني أنك لو رفعت ملفًا اسمه media.png إلى موقع له المُعرِّف 10 ضمن شهر آذار عام 2016، فسيُخزَّن كالآتي: wp-content/uploads/sites/10/2016/03/media.png.. بنية قاعدة البيانات لدى قاعدة بيانات الشبكة متعددة المواقع بنية مختلقة عن المواقع المفردة. لدى موقع ووردبريس الاعتيادي أحد عشر جدولًا في قاعدة البيانات: wp_posts wp_postmeta wp_comments wp_commentmeta wp_links wp_term_relationships wp_term_taxonomy wp_terms wp_options wp_users wp_usermeta أما في الشبكة متعددة المواقع، فسُتفصَل جداول كل موقع. أي سيكون لديك نسخةٌ من الجداول السابقة (للموقع الرئيسي)، بالإضافة إلى نسخة لكل موقع؛ إذ سيُضاف تسعة جداول لكل موقع –أي كل الجداول ما عدا wp_users و wp_usermeta–. لا يُنسَخ جدولي المستخدمين وبياناتهم أكثر من مرة، لأن المستخدمين هم مستخدمون لكامل الشبكة وليسوا مستخدمين لموقعٍ واحدٍ فقط. أما بقية الجداول التسعة فتُنسَخ لكل موقع، مع إضافة مُعرِّف ID الموقع كسابقة لاسم الجدول، لذاك ستكون جداول موقع له المعرف 10 كالآتية: wp_10_posts wp_10_postmeta wp_10_comments wp_10_commentmeta wp_10_links wp_10_term_relationships wp_10_term_taxonomy wp_10_terms wp_10_options بالإضافة إلى ذلك، تُنشِئ ووردبريس بعض الجداول الإضافية لكي تُخزِّن فيها البيانات المتعلقة بالشبكة نفسها، تلك الجداول هي: wp_blogs wp_blog_versions wp_registration_log wp_signups wp_site wp_sitemeta wp_sitecategories (اختياري) تلك الجداول تُخزِّن البيانات المتعلقة بإعدادات الشبكة والمواقع المُنشَأة فيها. ترجمة –وبتصرّف– للمقال WordPress Multisite Masterclass: Getting Started لصاحبته Rachel McCollin.
  9. أصبحت واجهات REST البرمجية أكثر انتشارًا بين المطوّرين، نظرًا لأنها توفّر واجهة بسيطة، موحّدة وواضحة لخدمات الطرف الثالث third-party مثل Twitter، MailChimp وGitHub. ومع ازدياد شهرة واجهة ووردبريس البرمجية (المتوفرة عبر إضافة) فإن الوقت قد حان لنتعلم حول واجهة HTTP البرمجية في ووردبريس، وكيفية عملها واستخداماتها. ما هي واجهة HTTP في ووردبريس؟ لن يكون من المستغرب القول بأنها طريقة لإرسال واستقبال الرسائل بواسطة HTTP – لغة شبكة الويب. حيث يقوم المتصفح بإرسال واستقبال الرسائل طوال الوقت وبهذا الشكل يتم استقبال صفحات الويب. ويمكن من خلال واجهة REST البرمجية، يمكن باستخدام رسائل HTTP القيام بأشياء أكثر كتعديل منشور، حذف حساب مستخدم أو نشر وصفة جديدة على موقعك. لهذا السبب تعتبر واجهة ووردبريس البرمجية مهمة جدًا، فهي تسمح بفصل التطبيق من جهة المستخدم عن النواة البرمجية الخاصة بووردبريس. ولاستخدامها، تحتاج أن تكون معتادًا على إرسال طلبات HTTP واستقبال الأجوبة، وهذا هو أساس عمل واجهة HTTP البرمجية. وهناك العديد من الطرق لإرسال طلبات HTTP، حيث توفّر واجهة HTTP البرمجية طريقة موحّدة باستخدام مجموعة من التوابع المساعدة والتي سنطّلع عليها بعد قليل. طرق HTTP ومصادرها ترتكز HTTP حول الطرق methods (تسمّى أحيانًا بالأفعال verbs) والمصادر resources. تحدّد المصادر العنصر الذي سيتم تنفيذ العملية عليه، وتحدّد الطريقة نوع العملية التي سيتم تنفيذها. ويعتبر العنوان URL هو المصدر الذي يشير إلى الغرض على شبكة الويب، كمنشور على سبيل المثال. وتوجد العديد من الطرق، لكن الأهم فيها هي GET, POST, PUT و DELETE. ولا بد أن لديك الكثير من الخبرة مع GET فهذه الطريقة هي المستخدمة في الحصول على المصادر، فمثلًا عند استعراض مقال في المتصفح يتم إرسال طلب GET إلى عنوان المقال وليكن مثلًا https://premium.wpmudev.org/blog/using-the-wordpress-http-api/. أما طلبات PUT فتستخدم لتعديل المصادر، وتستخدم طلبات POST لإنشاء مصادر جديدة، وتستخدم طلبات DELETE لحذف مصادر موجودة مسبقًا. ولو كان لدى موقع WPMU DEV واجهة REST برمجية، فربما كان من الممكن أن يقوم المدير بإرسال طلب DELETE لحذف المقال على الرابط https://premium.wpmudev.org/blog/wordpress-http-api، وهذا الأمر مفيد جدًا للمواقع الكبيرة التي تملك برامج إدارة على الهواتف الذكية. مثال عن طلب HTTP بسيط للقيام بإرسال طلب GET بسيط على سبيل التجربة، سنقوم باستخدام التابع wp_remote_get() الذي يملك مُعاملين، المُعامل الأول هو رابط المصدر، والمُعامل الثاني هو مصفوفة اختيارية optional من الخيارات التي من الممكن استخدامها لتحديد بعض التفاصيل. $test = wp_remote_get( 'http://google.com' ); echo "<pre>"; var_dump($test); echo "</pre>"; يقوم المثال السابق بجلب الصفحة الرئيسية لموقع جوجل، ومن ثم يتم طباعة محتوى المتغير test الذي يحوي على جواب الطلب الذي أرسله موقع جوجل – حيث يمكن رؤية جميع العناصر التي يحتويها. تحتوي الترويسات headers على المزيد من المعلومات عن كل رسالة. وقد تطلب منك بعض واجهات REST البرمجية أن تقوم بإرسال معلومات محددة في الترويسات عندما ترسل الطلب. يحتوي الجواب response على رمز الحالة status code وعبارة قد تكون معروفة بالنسبة لك كأخطاء 404، أو خطأ في معالجة الطلب 500 أو تحويل من النوع 301 أو 302. يحتوي موقع W3.org على جميع رموز أخطاء HTTP المعرّفة والمشروحة، ويعتبر مصدرًا مفيدًا إن احتجت أن تعرف ما يعني أي خطأ. بإمكانك أيضا الاطّلاع على هذا المقال على أكاديمية حسوب لتعرف المزيد حول هذه الرّموز: رموز الإجابة في HTTP يحتوي الجسم body على الجواب وهو المكان الذي تحتاج أن تنظر إليه بحثًا عن النتيجة المطلوبة. في حالة المثال السابق، فإننا نحصل على وسوم HTML التي تشكّل الصفحة الرئيسية، ولكن عند التعامل مع واجهات REST البرمجية فمن الشائع أن نحصل على نص بصيغة JSON. وعادة ما تطلب الواجهات البرمجية APIs أن يتم إضافة نص محدّد إلى الجسم عند إرسال طلبات أيضًا. يحتوي قسم cookies على أي كعكات تم استلامها مع الرسالة. كما ترى، فإن إرسال طلب باستخدام واجهة HTTP البرمجية أمر بسيط جدًا. ما يجعل العمل مع HTTP معقّد نوعًا ما هو أن واجهات REST البرمجية قد تكون حساسة جدًا لصيغة البيانات المدخلة (وهو أمر جيّد) لذا فإن تجاوزت سطرًا عند دراسة توثيق الواجهة البرمجية قد ينتهي بك الأمر ببرمجية لا تعمل كما ترغب. العمل مع الواجهات البرمجية أعتقد بأنه من الآمن القول بأن معظمكم سيستخدم HTTP للتعامل مع واجهات REST البرمجية في شبكة الويب، وفي هذه الحالة سنحتاج لاستخدام المعامل الثاني لتحديد بعض الأمور، كالاستيثاق وتجنب بعض الأخطاء الشائعة. لنبدأ بمثال بسيط – استعادة البيانات من لوحة Pinterest. تتطلب جميع الواجهات البرمجية الجيّدة تنفيذ عملية استيثاق للتعريف عن المستخدم الذي يرسل الطلب، لكنّنا سنغش قليلًا في هذا المثال باستخدام مولّد رموز الأمان الخاص بـ Pinterest. بعد إكمال الاستيثاق ستحصل على رمز أمان يمكن استخدامه في المثال التالي، حيث سنقوم بإنشاء طلب لجلب وعرض قائمة بمنشورات Pinterest. $request = wp_remote_get( 'https://api.pinterest.com/v1/boards/marticz/home-office/pins/?access_token=<your access token>' ); $pins = json_decode( $request['body'], true ); if( !empty( $pins['data'] ) ) { echo '<ul>'; foreach( $pins['data'] as $pin ) { echo '<li><a href="' . $pin['url'] . '">' . $pin['note']. '</a></li>'; } echo '</ul>'; } لو قمنا بنسخ المثال السابق ولصقه في صفحة content-page.php في قالب Twenty Fifteen لتجربته فإن النتيجة هو الحصول على لائحة بالمنشورات من لوحة Pinterest حول المكاتب الشخصية في المنزل. لا تنس أن تستبدل <your access token> في المثال السابق برمز الأمان الذي حصلت عليه. يقوم السطر الثاني في المثال بفك ترميز جسم الجواب من JSON إلى شكله الأساسي كمصفوفة ونقوم بإنشاء حلقة loop تقوم بطباعة محتوى عنصر المصفوفة $pins['data']. الاستيثاق يقع العديد من الأشخاص في عثرات في هذه المرحلة لأنها تتطلب خطوة إضافية على الأقل وربما بعض الترويسات الإضافية أيضًا. ولننظر إلى واجهة تويتر البرمجية على سبيل المثال، وتحديدًا إلى الاستيثاق الخاص بالتطبيقات، الذي يمكنك استخدامه لاستيثاق تطبيقك مع تويتر. قراءة التوثيق إن أول خطأ قد يتم ارتكابه هو عدم قراءة التوثيق بشكل جيّد. ولو كنت مبرمجًا متمرسًا في واجهات REST البرمجية فيمكنك القفز مباشرة إلى الجزء حول الاستيثاق، ولو فعلت هذا فقد لا تنتبه إلى سطر يقول: وإهمال هذا الشرط سيؤدي إلى فشل حتمًا في الحصول على نتيجة، على الرغم من أن كل شيء آخر مطبّق بشكل كامل، لذا حتى توفّر على نفسك الحاجة لمراجعة شفرة برنامجك، تأكد من قراءة التوثيق بشكل جيّد وكامل. إضافة ترويسات ومعاملات أخرى بعد اتباع التوجيهات في التوثيق حرفيًّا، قمت بإنشاء طلب POST، ينبغي أن يؤدي إلى توليد رمز أمان للوصول من أجلي، ويبدو الكود على الشكل: $key = base64_encode( urlencode( "n8KP16uvGZA6xvFTtb8IAA:i4pmOV0duXJv7TyF5IvyFdh5wDIqfJOovKjs92ei878" ) ); $request = wp_remote_post('https://api.twitter.com/oauth2/token', array( 'headers' => array( 'Authorization' => 'Basic ' . $key, 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8' ), 'body' => 'grant_type=client_credentials', 'httpversion' => '1.1' )); $token = json_decode( $request['body'] ); echo "<pre>"; var_dump($token); echo "</pre>"; إن الخطوة الأولى هو ترميز رمز أمان الوصول والكلمة السرّية بصيغة URL encoding. قمت أيضًا بإضافة ترويستين، واحدة ترويسة استيثاق تحوي على بيانات الوصول. أما الترويسة الثانية فهي ترويسة نوع المحتوى content type، والتي يطلب توثيق تويتر إضافتها. إضافة لما سبق، قمت بملء جسم الطلب تمامًا كما ذكرت الملاحظة السابقة حول grant_type=client_credentials وتم إضافة إصدار HTTP كما يطلب توثيق تويتر أيضًا. سيحتوي الجواب بالإضافة للعديد من المعلومات الأخرى على رمز أمان الوصول في جسم الجواب، وسنحتاج لرمز الأمان هذا في جميع الطلبات اللاحقة المرسلة إلى الواجهة البرمجية الخاصة بتويتر. تخزين رمز أمان الوصول إن رمز الأمان صالح لبعض الوقت، ويعتبر طلبه مجدّدًا هدرًا غير ضروري عند تحميل كل صفحة أو عندما يحتاج تطبيقك أن يقوم بعملية ما وسيؤدي إلى استهلاك عدد الطلبات المسموح بسرعة. يمكن في ووردبريس استخدام عابرة transient لتخزين قيمة رمز الأمان ومن ثم استخدام العابرة عند كل طلب لاحق للواجهة البرمجية. $token = get_transient( 'twitter_access_token' ); $token = ( empty( $token ) ) ? get_twitter_access_token() : $token; $request = wp_remote_get('https://api.twitter.com/1.1/followers/ids.json?screen_name=danielpataki&count=5', array( 'headers' => array( 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8' ), 'httpversion' => '1.1' )); $token = json_decode( $request['body'] ); سيؤدي إرسال الطلب السابق إلى واجهة تويتر البرمجية إلى عرض 5 من متابعيّ على تويتر (قائمة بسيطة لأرقام حساباتهم Ids). وكما يظهر في المثال السابق، فإنني أقوم بجلب القيمة التي خزّنتها في العابرة فإن لم تكن موجودة سأقوم باستدعاء التابع get_twitter_access_token() للحصول على رمز أمان جديد ومن ثم إضافته إلى العابرة كي أستخدمه في الطلبات اللاحقة. تجدر الإشارة إلى أن هذه الطريقة تهدف فقط إلى إظهار آلية التنفيذ وليست أفضل طريقة للتنفيذ، وكسيناريو أبسط كنت لأقوم بوضع جميع العبارات الشرطية IFs داخل التابع get_twitter_access_token() الذي سيقوم بتنفيذ جميع الشيفرة السابقة ضمنيًا. التوابع المساعدة في واجهة HTTP البرمجية الآن وبعد أن حصلنا على لمحة جيدة حول هدف المقال، دعونا نلق نظرة على التوابع التي ستساعدك في واجهة HTTP البرمجية في ووردبريس. هناك 4 توابع يمكن بواسطتها تنفيذ طلبات: wp_remote_get() wp_remote_post() wp_remote_head() wp_remote_request() ومن الواضح تمامًا وظيفة كل تابع، أما التابع الأخير wp_remote_request() فهو تابع عام يمكنك استخدامه مع أي طريقة HTTP method. أما التوابع الخمسة التالية فتسمح لك بالحصول على جواب على الطلب بسهولة باستخدام توابع قياسية عوضًا عن الخوض في التعامل مع المصفوفات وعناصرها. wp_remote_retrieve_body() wp_remote_retrieve_header() wp_remote_retrieve_headers() wp_remote_retrieve_response_code() wp_remote_retrieve_response_message() أيضًا يبين اسم كل تابع الهدف الوظيفي له بسهولة، وينصح عند الإمكان باستخدام هذه التوابع عوضًا عن التعامل مع المصفوفات يدويًا، حيث ستسمح هذه الطريقة الموحّدة لمطوّرين آخرين بفهم البرمجية بسهولة واستخدام الخطافات hooks إن أصبحت متاحة في المستقبل. الخلاصة كما ترى فإن التعامل مع واجهة REST البرمجية سهل باستخدام واجهة HTTP البرمجية في ووردبريس وبعض توابع ووردبريس كالعبّارات. أنصح بشدّة تجربة هذا الأمر لأن عملية التطوير في ووردبريس تسير بثقة باتجاه العالم المُقاد باستخدام الواجهات البرمجية وعليك أن تقفز إلى الموكب قبل فوات الأوان. إن كان لديك المزيد من الأسئلة حول استخدام واجهة HTTP البرمجية أو لديك بعض الأفكار حول كيفية استخدامها، فلا تتردد بمناقشة الأمر في قسم التعليقات في الأسفل. ترجمة -وبتصرّف- للمقال How to Use the WordPress HTTP API لصاحبه Daniel Pataki.
  10. Ajenti هي لوحة تحكّم عبر الويب حرّة ومفتوحة المصدر يمكن استخدامها لتنفيذ مجموعة كبيرة ومتنوعة من مهام إدارة الخوادم، علاوةً على إمكانية تغطيتها لمجموعة أخرى من المهام عبر تركيب إضافات add-ons كإضافة Ajenti V والتي تسمح بإدارة عدّة مواقع من خلال لوحة تحكم واحدة. في هذا الدرس سوف نشرح تركيب مدوّنة ووردبريس WordPress على لوحة التحكم Ajenti مع الإضافة Ajenti V، حيث أفترض أنك قمت بتركيبهما في وقتٍ سابق. المتطلباتفي هذا الدرس ستحتاج إلى: عنوان نطاق domain مُسجّل ومربوط مع خادوم مُثبّت عليه لوحة التحكم Ajenti مع الإضافة Ajenti V (خلال الدرس سأستخدم النطاق example.com للتوضيح). لوحة التحكم Ajenti مُثبتة ومضبوطة بشكل صحيح مع الإضافة Ajenti V، يمكنك قراءة هذا الدرس لتثبيت Ajenti خطوة بخطوة.الخطوة الأولى: ضبط ووردبريسمن خلال متصفح الويب لديك انتقل إلى عنوان لوحة تحكم Ajenti الخاصة بك مثل https://panel.example.com وسجّل دخولك باستخدام حساب المدير admin الذي أنشأته أثناء تركيب Ajenti و Ajenti V. من الشريط الجانبي وتحت القسم Web اختر Websites. في المرة الأولى قد تُعطى إشعارًا بأنّ الخاصيّة غير مُفعّلة بعد، فقط اضغط على الزر Enable ودع Ajenti V يقوم ببعض عمليات الضبط الضروريّة. الآن سيظهر لنا قسمٌ يُسمى New Website وأسفله حقل نصيّ بعنوان Name. اكتب اسمًا معرّفًا لموقعك في هذا الحقل ثم اضغط على الزر Create، حيث ستلاحظ إدراج الموقع أسفل القسم Websites. اختر Manage لإدارته. أسفل قسم Website Files غيّر المسار srv/new-website/ إلى أي مجلد آخر مثل srv/example.com/. اضغط على الزر Set ثم Create Directory. تذكّر المجلد الذي اخترته، حيث سترفع إليه الملفات بعد قليل. أسفل القسم General أزل تفعيل الخيار Maintenance mode. ثم انقر على Apply changes أسفل الصفحة. الآن من أعلى الصفحة اختر علامة التبويب Domains، اضغط على الزر Add واكتب عنوان نطاقك مثل example.com ضمن المربع النصي الظاهر، ثم انقر على Apply Changes. انتقل إلى علامة التبويب Advanced، وأدخل النصّ التالي ضمن مربع Custom configuration:# This order might seem weird - this is attempted to match last if rules below fail. location / { try_files uriuri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-adminscheme://hosturi/ permanent; # Directives to send expires headers and turn off 404 error logging. location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires max; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) location ~ /\. { deny all; } # Deny access to any files with a .php extension in the uploads directory # Works in sub-directory installs and also in multisite network # Keep logging the requests to parse later (or to pass to firewall utilities such as fail2ban) location ~* /(?:uploads|files)/.*\.php$ { deny all; }انقر Apply changes. لننتقل الآن إلى لسان التبويب Content ومن القائمة المنسدلة اختر PHP FastCGI واضغط Create. انقر على القائمة Advanced أسفل new PHP entry، وأدخل المحتوى التالي ضمن Custom configuration. انتبه إلى أنه غير متطابق مع محتوى Custom configuration في الخطوة السابقة. try_files uri=404;fastcgisplitpathinfo(.+\.php)(/.+);انقر Apply Changes. انتقل إلى علامة التبويب MySQL أسفل قسم Databases، أدخل اسمًا لقاعدة البيانات، لهذا الدرس سأختار الاسم database_name وانقر على Create. الآن ومن أسفل قسم Users انقر على Create يمكنك الإبقاء على اسم المستخدم وكلمة المرور المولّدة تلقائيًا أو تغييرها إن شئتْ، ولهذا الدرس سأستخدم db_user و db_password على التوالي، عندما يكون كل شيء جاهزًا انقر على Apply Changes. احتفظ بالمعلومات التي أدخلتها جانبًا؛ اسم قاعدة البيانات، اسم المستخدم، وكلمة المرور، حيث ستحتاجها بعد قليل لإكمال إعداد ووردبريس. الخطوة الثانية: رفع الملفاتقبل أن تتمكّن من فك ضغط ملفات نظام ووردبريس أنت تحتاج لأداة فك الضغط zip أولًا. من الشريط الجانبي وأسفل قسم Tools اختر Terminal واضغط على New، انقر على الصندوق الأسود الذي سيظهر أمامك واطبع بداخله الأمر التالي: apt-get install zip unzip بعد انتهاء العملية انقر على X بجوار Terminal 0 أعلى الصفحة. عُد الآن مجددًا إلى قسم Websites واضغط على Manage بجوار موقعك، ثم اذهب إلى لسان التبويب General ضمن موقعك وأسفل القسم Automatic Downloader أدخل http://wordpress.org/latest.zip واضغط على Download and Unpack، حيث ستظهر نافذة طرفية وتتولى عملية تنزيل وفك ضغط حزمة ووردبريس، يمكنك الضغط على الزر X بجوار Terminal 0 في أعلى الصفحة بعد الانتهاء. عُد إلى القسم Tools في الشريط الجانبي وانقر على File Manager ثم توجّه إلى الدليل الذي أنشأته مسبقًا داخل المجلد /srv/ بالنقر على اسم المجلد، هناك يجب أن تُشاهد مجلد باسم wordpress والذي يتمّ إنشائه أثناء تنزيل وفك الضغط التلقائي للحزمة ووردبريس، ادخل إليه وحدد جميع الملفات والمجلدات التي بداخله كما يلي: الآن اختر العملية Cut من شريط الأدوات أعلى الشاشة: عُد إلى مجلدك داخل الدليل /srv/ مثل srv/example.com/ وألصق جميع الملفات والمجلدات بداخله مباشرةً. سيأخذ ذلك بضعة دقائق للانتهاء يمكنك بعدها حذف المجلد الفارغ wordpress. الآن جميع ملفات ووردبريس بداخل المجلد الجذر root لموقعك. الخطوة الثالثة: تركيب ووردبريسفي متصفح الإنترنت لديك انتقل إلى عنوان موقعك مثل http://example.com وستظهر أمامك صفحة ترحيبية من مُثبّت برنامج ووردبريس، اختر اللغة التي ترغب باستخدامها مع البرنامج واضغط على Continue ثم .. !Let’s go. في حقل اسم قاعدة البيانات غيّر القيمة الافتراضية wordpress إلى الاسم الذي اخترته سابقًا (database_name مثلًا هي القيمة التي اخترناها لهذا الدرس)، كذلك أدخل اسم المستخدم وكلمة المرور التي قمتَ بتحديدها. أبقِ قيمة Database host كما هي localhost. كما يمكنك ترك قيمة الخانة Table Prefix على حالها wp_ إلا أنه يُنصح بتغييرها لدواعٍ أمنيّة، مثلا يمكنك كتابة blog_ أو شيء من هذا القبيل، المهم أن لا يتجاوز طول الاسم خمسة محارف وأن ينتهي بالرمز _. الآن يمكنك النقر على زر Run the install لإكمال عملية التثبيت، وبعدها سيتبقى عليك تزويد البرنامج ببعض المعلومات عن موقعك (كالاسم، ومعلومات تسجيل الدخول). الخلاصةفي نهاية هذا الدرس يُفترض أن تكون قد تمكّنت من تثبيت برنامج ووردبريس بنجاح على لوحة تحكم Ajenti الخاصة بك. ترجمة -وبتصرف- للمقال Installing WordPress on Ajenti V لصاحبه Jonah Aragon.
  11. هل صنعت قالب HTML وأحببته لكنّك لم تعرف كيف تُحوّله إلى قالب ووردبريس؟ ليس بعد الآن، ستتعلم في هذا الدرس كيف تقوم بذلك. هل تعلم بأنّ هناك الكثير من المُطوّرين الذين يكسبون رزقهم عن طريق إنشاء قوالب وإضافات ووردبريس (Wordpress) وبيعها؟ وهل تعلم أنّه بإمكان مطوّري ووردبريس الحصول على آلاف الدولارات سنويًَّا من خلال بيع مُنتجاتهم؟ هذا الدّرس مُخصّص لمطوّري الويب، على فرض أن القارئ على اطّلاع (ولو بشكل مُبسّط) بما يتعلّق بلغة PHP وMySQL ومعلومات عامّة عن كيفية تنصيب واستخدام ووردبريس. هذا الدرس جزء من سلسلة تعلم كيفية تطوير قوالب ووردبريس: مقدمة إلى تطوير قوالب ووردبريس: تحويل صفحة HTML إلى قالب ووردبريس (هذا الدرس) التصفيح (Pagination) في قوالب ووردبريس إضافة قوائم التنقل (Navigation Menu) إلى قالب ووردبريس صف وتسجيل ملفات Javascript و CSS في قوالب ووردبريس متطلبات التّشغيل نحتاج إلى تحميل نسخة ووردبريس من الموقع الرسمي ، سنستخدم النّسخة العربية من هذا الرّابط. تحتاج ووردبريس إلى خادوم ويب، سواء كان Apache أو Nginx أو الخادوم المُدمج مع لغة PHP (بإصدار5.4 وما فوق). وتحتاج أيضًا إلى خادوم قواعد البيانات MySQL. لنقم بإنشاء مُجلّد جديد wordpress_tutorials ونضع فيه نسخة ووردبريس النّاتجة عن فكّ ضغط الملف الذي قمنا بتحميله. ملاحظة: يمكن أن تستخدم البرامج المُجهّزة خصّيصًا بخواديم Apache و MySQL مثل MAMP ،WAMP أو XAMPP. مع مُراعاة الاختلاف بين رابط خادوم الويب ومعلومات خادوم MySQL مع ما سنستخدمه في هذا الدّرس. سنقوم باستخدام الخادوم المُدمج مع PHP لتجنّب تنصيب خادوم Apache أو Nginx وتجنب الخوض في الإعدادات الخاصّة بكل واحد منها. لتشغيل الخادوم المُدمج نتوجه باستخدام سطر اﻷوامر إلى المجلّد الذي يحوي نسخة ووردبريس. ثم نكتب أمر: php -S localhost:8000 يتمّ تشغيل خادوم الويب المُدمج مع PHP على الحاسوب، يمكن التّوجّه عن طريق المُتصفّح إلى الرّابط localhost:8000 للتّأكد من أن الخادوم يعمل. تهيئة قالب HTML سنقوم بالاعتماد على قالبٍ قمتُ بإعداده مُسبقاً، يمكن تحميله من هذا الرابط، التّصميم عبارة عن قالب عادي يحوي بضع ملفّات HTML ،CSS و JavaScript. وهو مبني اعتمادًا على إطار عمل Foundation مع بعض التّعديلات والإضافات. هذا القالب تجريبيّ فقط لرؤية كيفية ظهور الشكل العامّ له. نتوجه إلى مجلّد المشروع الذي يحوي ملفات ووردبريس، ومنه نتوجّه إلى مجلد wp-content ثم إلى مُجلّد themes. نقوم بإنشاء مُجلّد اسمه my_theme بمثابة مُجلّد القالب الذي سنقوم بإنشائه. ملفات القالب الأساسية نحتاج إلى وجود ملفّين على الأقل ضمن مجلد القالب الذي أنشأناه، وهما: - style.css - index.php وهذا أقل ما يجب توفّره في القالب ليكون قالبًا صالحًا للاستخدام. نتجه إلى صفحة تغيير القوالب من لوحة تحكم ووردبريس لنرى ما يشبه: كما تلاحظون لا نرى القالب الجديد الذي أنشأناه ضمن القوالب، وذلك ﻷن هناك شيئًا آخر علينا فعله قبل أن نرى القالب الجديد في هذه الصفحة. نحتاج إلى إضافة تعليق في ملف style.css كالتّالي (يمكن تعديل أيّ قيمة أيضًا): /* Theme Name: قالبي الجديد Author: عمار العقاد Author URI: http://aalakkad.me Description: قالب جديد، نقوم من خلاله بالتّدرّب على إنشاء قوالب WordPress. Version: 1.0 */ تقوم ووردبريس بالدخول إلى كل مجلد في مجلد القوالب، ثم تبحث عن ملف style.css بداخله تعليق يشبه التّعليق السابق، ثم تقوم بتفسير هذه التّعليقات ووضعها في صفحة القوالب التي تظهر للمُستخدم من خلالها أسماء وتوصيف القوالب. وهناك تفصيلات أخرى للتعليقات في ملف style.css يمكن الاطلاع عليها كاملة من ملفات التوثيق. يمكن التوجه إلى صفحة القوالب من خلال لوحة التحكم، لنرى شيئًا مُشابهًا لما يلي: لنقم بتفعيل هذا القالب الجديد، ثم نتوجّه إلى الصّفحة الرّئيسية للمُدوّنة (الصفحة التي تُظهر المقالات وليست صفحة لوحة التّحكم). إن كنت تستخدم الخادوم المُدمج مع PHP بالطريقة التي ذكرناها، فيكون رابط الصّفحة الرئيسية هو: localhost:8000. سنرى صفحة بيضاء دون أن تحوي أيّ شيء، وذلك ﻷن القالب ما زال فارغًا تمامًا. سيتغيّر الوضع بعد قليل. نقل قالب HTML إلى قالب ووردبريس ما سنفعله في الخطوة الأولى هو وضع قالب HTML في ملف index.php ثم نقوم بتعديل مسارات ملفات CSS و JavaScript. ستكون جميع الصفحات التي نستخدمها من ووردبريس بعد تفعيل القالب الجديد مُتطابقة، وكأنها قالب HTML نفسه. وهذا هو المطلوب في هذه المرحلة، سنقوم بإضافة التّفاصيل فيما بعد وعلى عدة مراحل. نقوم الآن بنسخ محتوى ملف index.html كاملًا من قالب HTML ونضعه في ملف index.php في قالبنا الجديد my_theme ضمن ووردبريس. ثم ننسخ مجلد assets كما هو إلى داخل مجلد قالبنا الجديد. لنرى كيف أصبح شكل الموقع بعد أن وضعنا محتوى ملف index.html في ملف index.php: يظهر الآن القالب بهذا الشّكل ﻷن ملفات CSS وJavaScript أصبحت في مسار مختلف عن المسار الذي كان موجودًا في قالب HTML. علينا الآن أن نقوم بتعديل مسارات هذه الملفات كي يُصبح شكل قالب ووردبريس الجديد مُطابقًا لشكل قالب HTML. توفّر لنا ووردبريس عددًا من الدّوالّ (functions) مهمتها تسهيل إنشاء القوالب، سنستخدم منها get_template_directory_uri()، تقوم هذه الدالّة بإرجاع قيمة نصّيّة هي رابط القالب. مثلاً، إن كان مجلد القالب هو my_theme ورابط خادوم الويب الذي نعمل عليه هو http://localhost:8000 ستكون نتيجة الدالّة هي: http://localhost:8000/wp-content/my_theme يجب أن نستخدم هذه الدالّة أو ما يشابهها لنحصل على الرّوابط، ولا نستخدم روابط نضعها بشكل يدوي، فيُمكن لرابط خادوم الويب أن يتغير، وإن كانت الروابط موضوعةً بشكل يدوي فسيظهر شكل القالب كما في الأعلى خاليًّا من ملفات CSS و .JavaScript. نقوم بتعديل ملف index.html في قسم head، نبحث عن سطر استدعاء ملفات CSS، ثم نقوم بالتّعديل عليها لتصبح بالشّكل: في قسم head أيضًا نُريد استبدال رابط استدعاء ملف modernizr.js ليستخدم دالّة get_template_directory()، فيُصبح: <script src="<?php echo get_template_directory_uri(); ?>/assets/js/modernizr.js"></script> أخيرًا نبحث في نهاية ملف index.php عن سطر استدعاء ملف JavaScript، ونقوم بالتّعديل عليه ليُصبح كما يلي: <script src="<?php echo get_template_directory_uri(); ?>/assets/js/vendor.js"></script> الآن عندما يتم طلب المُدوّنة من المُتصفّح، ستكون النّتيجة النّهائية للتعديلات الثلاثة التي قمنها بها كالتالي: <link rel="stylesheet" href="http://localhost:8000/wp-content/themes/my_theme/assets/css/main.css"> <script src="http://localhost:8000/wp-content/themes/my_theme/assets/js/modernizr.js"></script> <script src="http://localhost:8000/wp-content/themes/my_theme/assets/js/vendor.js"></script> نذهب الآن إلى الصّفحة الرّئيسية للمُدوّنة لنرى كيف أصبح القالب. في آخر فقرة من هذا الدرس سنقوم بتعديل ترويسة الموقع التي نصّها الحالي هو: "عنوان الموقع"، والذي يظهر في الجُزء العُلويّ. نريد تغيير هذا النصّ ليصبح اسم المدونة التي قمنا بإدخالها أثناء مرحلة التّنصيب، يمكنك تغيير اسم المدونة من لوحة التحكم ثم الإعدادات. لنفتح صفحة index.php في المُحرّر، ثم نبحث عن السطر الذي يحوي: <h1 class="logo">عنون الموقع</h1> ,نقوم باستبداله بما يلي بعض إضافة وسم PHP له: <h1 class="logo"><?php bloginfo('name'); ?></h1> وسم: <?php php bloginfo('name'); ?> يقوم بإظهار/طباعة نصّ يتم جلبه من قاعدة البيانات، النصّ هو اسم المُدوّنة. نلاحظ أن الدّالّة bloginfo() تقوم بالإظهار وليست الإرجاع return كما تفعل دالّة ()get_template_directory_uri. الآن عندما نتوجّه إلى الصفحة الرئيسية للمدونة تكون الترويسة شبيهة بالصورة: فصل محتوى الملفات من قواعد البرمجة الهامة إلغاء التّرابط أو الفصل (decoupling)، فنحاول فصل العناصر المُترابطة قدر الإمكان ووضعها في ملفات مُنفصلة. مثلًا سنقوم لاحقًا بإنشاء صفحة خاصّة لعرض المواضيع المُنفردة، وستحتاج تلك الصّفحة إلى وجود الترويسة (header) والتذييل (footer) كي تحوي ملفات CSS و JavaScript وتكون متناغمة مع باقي القالب. توفّر لنا ووردبريس عدة طُرق لإلغاء التّرابط في الملفات، إمّا أن يتم استخدام التّسلسل الهرمي لملفّات القالب (theme hierarchy) أو يتم استخدام قِطَع القالب (template parts). التّسلسل الهرمي لملفّات القالب (أو ملفات القالب للاختصار) هي ملفات بأسماء ثابتة، تقوم ووردبريس باستخدام الملف المُتوفّر منها حسب الطلب الذي يأتيها من المتصفح؛ مثلاً طلبتَ من المدونة رابط مقالٍ معيّن، تقوم ووردبريس بتحليل الطّلب ومعرفة أن المطلوب هو مقال، فتبحث عن ملف باسم single.php، إن كان موجودًا يتمّ استخدامه، إن لم يكن موجودًا تبحث ووردبريس عن ملف index.php. وهكذا الأمر بالنسبة لجميع الطلبات. أما قِطع القالب، فهي ملفات يقوم المستخدم بإنشائها دون أن يلتزم باستخدام أسماء مُحدّدة كما في ملفات القالب. ثم يقوم المطوّر باستخدام هذه القِطع في أي مكان يريده ضمن القالب. يقوم المُطوّر مثلًا بإنشاء قطعة مُخصّصة لعرض أزرار المُشاركة، يقوم بتسمية الملف: sharing.php، ويضع فيه الوسوم التي يُريدها. ثم يقوم باستدعاء هذا الملف في الصّفحة الرّئيسيّة index.php وصفحة المقال المُنفرد single.php على النّحو التّالي: <?php get_template_part('sharing'); ?> هناك تفصيلات حول كيفية إنشاء قطع القالب والتّعامل معها، ما سنذكره هنا فقط لإعطاء فكرة عامة عنها وليس لشرحها بالتّفصيل. سنستخدم في هذا الدرس التّسلسل الهرمي فقط لسهولته وشهرته. إن كان الاسم غريبًا بالنّسبة إليك فستألفه بمُجرد أن تشرع في استخدامه. سنقوم بإنشاء 3 ملفّات في القالب هي: - header.php - footer.php - sidebar.php ومن ثم يمكننا استخدام هذه الملفّات في أي مكان ضمن القالب عن طريق الدّوال: - get_header() - get_footer() - get_sidebar() هذه الدّوال تعمل بشكل مُشابه لـ require التّي نعرفها في لغة PHP. بهذه الطّريقة لن نحتاج إلى القيام بالنّسخ واللصق في كل مرة نريد إدراج الترويسة في ملفات القالب، وفي حال أردنا تعديل شيء في الترويسة فلن نضطرّ إلى تطبيق التعديل في جميع ملفات القالب. الخطوة التّالية هي نقل المحتوى المُناسب لكل ملفّ من الملفّات السّابقة من ملف index.php إلى الملفّات الثّلاثة الجديدة التي أنشأناها. سنقوم حرفيًا بالنّسخ واللّصق من ملف index.php إلى الملفات الثّلاثة، ثم نقوم بوضع إحدى الدّوال الثلاثة في ملف index.php بدل النصّ الذي قمنا باقتصاصه. ملف الترويسة header.php نقوم باقتصاص مُحتوى ملف index.php من بدايته وحتى نهاية وسم </header> في السطر 57. نضع ما اقتصصناه في ملف header.php. ثم نضع مكان الاقتصاص في ملف index.php ما يلي: <?php get_header(); ?> فتصبح بداية ملف index.php مشابهةً لما يلي: <?php get_header(); ?> <div class="main-content"> <div class="row"> ملف التذييل footer.php نقوم الآن باقتصاص الجزء الخاص بالتذييل من ملف index.php، في السطر 71 بدءاً من وسم: <div class="site-footer"> وحتى نهاية الملف. نقوم بوضع المُحتوى في ملف footer.php، ثم نستبدل مكان الوسوم المقصوصة في ملف index.php بما يلي: <?php get_footer(); ?> ملف الشريط الجانبي sidebar.php الوسوم الخاصّة بالشريط الجانبي ما هي إلا أربعة أسطر، تبدأ من السطر 64، المحتوى هو: <div class="large-4 columns sidebar"> <div class="card"> Sidebar </div> </div> نقوم بنقل المحتوى السّابق من ملف index.php إلى ملف sidebar.php، ونضع مكانه في ملف index.php: <?php get_sidebar(); ?> بهذا ننتهي من المرحلة الأولى من إلغاء الترابط بين الوسوم، وضعنا كل جزءٍ منها في ملفٍّ خاصٍّ به، وكلما أردنا استخدام ذلك الجزء نقوم باستدعاء الدّالّة المناسبة لذلك. أصبح ملف index.php أقصر طولًا، ويؤدّي نفس الغرض الذي كان يؤدّيه قبل أن نقوم بالتّعديلات، محتوى الملف كالتالي: <?php get_header(); ?> <div class="main-content"> <div class="row"> <div class="large-8 right columns news"> <div class="row"> <div class="medium-12 columns"> <article class="card"> <header> <h1>Post title</h1> </header> <div class="date">4 كانون الأول 2014</div> <p>خلافاَ للاعتقاد <a href="#">السائد</a> فإن لوريم إيبسوم ليس نصاَ عشوائياً، بنذ العام 45 قبل الميلاد، مما يجعله أكثر من 2000 عام في القدم. قام البروفيسور "ريتشارد ماك لينتوك" (Richard McClintock) وهو بروفيسور اللغة اللاتينية في جامعة هامبدن-سيدني في فيرجينيا بالبحث عن أصول كلمة لاتينية غامضة في نص لوريم إيبسوم وهي "consectetur"، وخلال تتبعه لهذه الكلمة في الأدب اللاتيني اكتشف المصدر الغير قابل للشك. فلقد اتضح أن كلمات نص لوريم إيبسوم تأتي من الأقسام 1.10.32 و 1.10.33 من كتاب "حول أقاصي الخير والشر" (de Finibus Bonorum et Malorum) للمفكر شيشيرون (Cicero) والذي كتبه في عام 45 قبل الميلاد. هذا الكتاب هو بمثابة مقالة علمية مطولة في نظرية الأخلاق، وكان له شعبية كبيرة في عصر النهضة. السطر الأول من لوريم إيبسوم "Lorem ipsum dolor sit amet.." يأتي من سطر في القسم 1.20.32 من هذا الكتاب.</p> <div class="read-more text-left"> <a href="#">تابع قراءة المقال &raquo;</a> </div> <footer class="tags"> <span class="label">تقني</span> <span class="label">تنمية</span> <span class="label">منوعات</span> </footer> </article> </div> <div class="medium-12 columns"> <article class="card"> <header> <h1>Post title</h1> </header> <div class="date">4 كانون الأول 2014</div> <p>خلافاَ للاعتقاد <a href="#">السائد</a> فإن لوريم إيبسوم ليس نصاَ عشوائياً، بنذ العام 45 قبل الميلاد، مما يجعله أكثر من 2000 عام في القدم. قام البروفيسور "ريتشارد ماك لينتوك" (Richard McClintock) وهو بروفيسور اللغة اللاتينية في جامعة هامبدن-سيدني في فيرجينيا بالبحث عن أصول كلمة لاتينية غامضة في نص لوريم إيبسوم وهي "consectetur"، وخلال تتبعه لهذه الكلمة في الأدب اللاتيني اكتشف المصدر الغير قابل للشك. فلقد اتضح أن كلمات نص لوريم إيبسوم تأتي من الأقسام 1.10.32 و 1.10.33 من كتاب "حول أقاصي الخير والشر" (de Finibus Bonorum et Malorum) للمفكر شيشيرون (Cicero) والذي كتبه في عام 45 قبل الميلاد. هذا الكتاب هو بمثابة مقالة علمية مطولة في نظرية الأخلاق، وكان له شعبية كبيرة في عصر النهضة. السطر الأول من لوريم إيبسوم "Lorem ipsum dolor sit amet.." يأتي من سطر في القسم 1.20.32 من هذا الكتاب.</p> <div class="read-more text-left"> <a href="#">تابع قراءة المقال &raquo;</a> </div> <footer class="tags"> <span class="label">تقني</span> <span class="label">تنمية</span> </footer> </article> </div> </div> <div class="row"> <div class="medium-12 columns"> <ul class="pagination"> <li class="arrow unavailable"><a href="">&laquo;</a></li> <li class="current"><a href="">1</a></li> <li><a href="">2</a></li> <li><a href="">3</a></li> <li><a href="">4</a></li> <li class="unavailable"><a href="">&hellip;</a></li> <li><a href="">12</a></li> <li><a href="">13</a></li> <li class="arrow"><a href="">&raquo;</a></li> </ul> </div> </div> </div> <?php get_sidebar(); ?> </div> </div> <?php get_footer(); ?> جلب المقالات من قاعدة البيانات نحتاج الآن إلى عرض المقالات المحفوظة في قاعدة البيانات (والتي يتم التّحكم فيها من لوحة التّحكم الخاصّة بووردبريس)، سنقوم بعرضها في ملف index.php وفي دروس لاحقة سنستخدم نفس طريقة عرض المقالات في باقي ملفات القالب، سواءً في ملف single.php أو في archive.php أو في غيرها. ضمن ملف index.php نجد أن كل مقال مُحاط بالوسوم: <div class="medium-12 columns"> <article class="card"> كل مقال يجب أن يبدأ بهذه الوسوم، وينتهي بإغلاق هذه الوسوم. نلاحظ أن قالب HTML يحوي مقالين شكليين، سنحذف واحدًا منها ونكتفي بالآخر لنقوم باستخدامه كمعيار لعرض المقالات مثله. نحيط وسوم بداية المقال بالحلقة الرّئيسية التي تكلّمنا عنها سابقًا، فتُصبح الوسوم كما يلي: <?php while(have_posts()) { the_post(); ?> <div class="medium-12 columns"> <article class="card"> وبعد إغلاق الوُسوم التي بدأ المقال عندها نضع نهاية الحلقة (قوس إغلاق الحلقة) كما يلي: </article> </div> <?php } ?> إن قمنا بحفظ التّعديلات والتجربة، سنجد أن المقال الشّكليّ سيتكرّر بعدد المقالات الموجودة في قاعدة بيانات ووردبريس لدينا. لكن جميع المقالات ستكون بنفس الشّكل وبنفس المُحتوى. سنقوم الآن باستبدال المُحتوى الشّكليّ بالمُحتوى المُناسب من قاعدة البيانات حسب كل مقال. تقدم ووردبريس دالّة the_title لطباعة عُنوان المقال الحالي، سنستخدمها بدل عنوان المقال الشّكلي، فتصبح الوسوم كما يلي: <h1><?php the_title();?></h1> وبنفس الطريقة نستخدم دالّة the_date لعرض تاريخ نشر المقال كما يلي: <div class="date"><?php the_date();?></div> ثم لعرض محتوى المقال نستخدم دالّة the_content بدل وسم <p></p> الذي يحوي المحتوى الشكليّ، كما يلي: <p><?php the_content();?></p> يُمكن أن نقوم بحفظ التّعديلات على الملف ومشاهدة النّتيجة في المُتصفّح لنتأكد من أن التّعديلات التي قمنا بها تم تطبيقها وتعرض النّتيجة الصّحيحة. بقي لدينا تعديلان مُشابهان لما قمنا به، الأول لتعديل رابط “تابع قراءة المقال” والثاني لعرض الوسوم الخاصّة بالمقال. لتعديل رابط المقال نستخدم دالّة the_permalink التي وظيفتها عرض رابط الويب الخاصّ بالمقال، لكن لا تقوم الدّالّة سوى بطباعة الرّابط دون وضعه في وسم <a></a> كي يصبح قابلًا للنّقر والاستخدام. علينا إذًا وضع الرّابط في مكانه المُناسب كما يلي: <a href="<?php the_permalink();?>">تابع قراءة المقال »</a> قمنا باستبدال قيمة حقل href="#" بدالّة طباعة رابط المقال. الآن أصبح بإمكاننا مُشاهدة الصّفحة الرّئيسيّة للقالب التي تعرض المقالات ويمكن الضّغط على رابط “تابع قراءة المقال” للوصول إلى المقال بعينه ضمن صفحة مُستقلّة. بقي الآن أن نعرض الوسوم الخاصّة بكل مقال. مكان الوسوم هو داخل وسم: <footer class="tags"> </footer> سنقوم باستخدام دالّة wp_get_post_tags التي مهمتها إرجاع مصفوفة تحوي جميع الوسوم الخاصّة بالمقال على شكل كائنات (Objects) وليس مُجرّد نصّ عادي. وعليه فإنه سيكون بإمكاننا الوصول إلى اسم كل وسم عن طريق: tag->name$ كما يلي: <footer class="tags"> <?php $tags = wp_get_post_tags(get_the_ID()); foreach($tags as $tag) { echo '<span class="label"> ' . $tag->name . '</span> '; } </footer> يُمكننا الآن استعراض المقالات في الصّفحة الرّئيسية للمُدوّنة والوصول إلى كل مقال عن طريق الرّابط الخاص به ورؤية الوسوم الخاصّة بكل مقال أيضًا. سنتوقف هنا في هذا الدرس كي لا تكون المعلومات كثيفة يصعب استيعابها، وسنتابع في دروس أخرى استخدام أرقام الصّفحات في الأسفل بشكل صحيح. (يمكن الآن إضافة تعليق حول وسوم الصفحات كي لا تظهر بشكل خاطئ وبدون روابط صحيحة). خلاصة تعلّمنا في هذا الدّرس كيف نقوم بتجهيز قالب HTML ليُصبح قالبَ ووردبريس، وكيف نُعدّل مسارات ملفات JavaScript وCSS لتُصبح متناغمةً مع رابط الويب الخاص بقالب ووردبريس. وفي القسم الثاني من الدرس تعلّمنا كيف نقوم بفصل المحتوى عن ملف index.php إلى ملفّات فرعية أخرى، لنقوم بإعادة استخدامها في أي ملف ضمن القالب. وفي القسم الأخير رأينا كيف يمكن جلب المقالات من قاعدة البيانات وإظهارها للمُستخدم مع عرض الوسوم الخاصّة بكل مقال. أرجو أن يكون الدرس سهلاً بسيطاً، في حال وجود أي استفسار أو مداخلة نرحّب به في التعليقات.
  12. سنتعلّم في هذا الدّرس كيفيّة استخدام HAProxy (والذي يرمز إلى الوسيط عالي التوفّر High Availability Proxy) كمُوازِن حمل عن طريق الطبقة السّابعة layer 7 load balancer من أجل تخديم تطبيقات متعدّدة من اسم مجال واحد Single Domain أو عنوان IP، بإمكان موازنة الحمل أن تزيد أداء، توفّر، ومرونة بيئتنا. تكون موازنة الحمل والوسيط العكسي للطبقة 7 ملائمة لموقعك إن أردت أن تملك اسم نطاق واحد يقوم بتخديم تطبيقات متعدّدة، حيث يمكن تحليل طلبات http لتقرّر أي تطبيق ينبغي عليه أن يستقبل حركة مرور البيانات. تمّت كتابة هذا الدّرس باستخدام ووردبريس وموقع ثابت Static website كأمثلة، ولكن يمكن استخدام مفاهيمه العامّة مع تطبيقات أخرى للحصول على تأثير مماثل. المتطلبات الأساسية قبل متابعة هذا الدّرس ينبغي عليك أن تملك تطبيقين على الأقل يعملان على خادومين منفصلين، سنستخدم موقعًا ثابتًا مستضافًا على Nginx و ووردبريس كتطبيقين لدينا، وبالإضافة للبيئة الحاليّة لديك سنقوم بإنشاء الخواديم التالية: haproxy-www: وهو خادوم HAProxy لأجل موازنة الحمل والوسيط العكسي wordpress-2: وهو خادوم الويب الثاني لووردبريس (تحتاجه فقط إن أردت موازنة حمل مكونات ووردبريس في بيئتك) web-2: خادوم ويب Nginx الثاني (تحتاجه فقط إن أردت موازنة حمل مكونات Nginx في بيئتك) إن لم يسبق لك التّعامل مع المفاهيم أو المصطلحات الأساسيّة لموازنة الحمل، مثل موازنة الحمل عن طريق الطبقة 7 أو الواجهات الخلفيّة backends أو قوائم تحكّم الوصول ACLs فهذا هو الدّرس الذي يشرح الأساسيّات: مقدّمة إلى HAProxy ومبادئ موازنة الحمل (Load Balancing). هدفنا بنهاية هذا الدّرس نريد أن نحصل على بيئة تبدو كما يلي: أي سيقوم المستخدمون لديك بالنفاذ لكلا تطبيقيك عبر http://example.com، وسيتم تمرير كل الطلبات التي تبدأ بـ http://example.com/wordpress إلى خواديم ووردبريس، ويتم تمرير جميع باقي الطلبات إلى خواديم Nginx الأساسيّة، لاحظ أنّه لا تحتاج بالضرورة لموازنة حمل تطبيقاتك حتى تظهر على مجال واحد، ولكن سنقوم بتغطية موازنة الحمل في هذا الدّرس. تثبيت HAProxy نقوم بإنشاء خادوم جديد مع الشّبكات الخاصّة، سنسمّيه في هذا الدّرس haproxy-www. نقوم بتثبيت HAProxy على الخادوم haproxy-www باستخدام apt-get: sudo apt-get update sudo apt-get install haproxy نحتاج لتمكين سكريبت التهيئة init script لـ HAProxy كي يبدأ ويتوقف HAProxy مع الخادوم لدينا: sudo vi /etc/default/haproxy نغيّر قيمة ENABLED إلى 1 لتمكين سكريبت التهيئة لـ HAProxy: ENABLED=1 نقوم بالحفظ والخروج، سيبدأ ويتوقف HAProxy الآن مع خادومنا، نستطيع أيضًا الآن استخدام الأمر service للتحكّم بـ HAProxy، فلنتحقّق من أنّه قيد التشغيل: user@haproxy-www:/etc/init.d$ sudo service haproxy status haproxy not running. نجد أنّه لا يعمل، لا مشكلة لأنّه يحتاج إلى إعداده قبل أن نتمكّن من استخدامه، فلنقم الآن بإعداد HAProxy لأجل بيئتنا. إعداد HAProxy يكون ملف إعدادات HAProxy مُقسّمًا إلى قسمين رئيسيين: العمومي Global: يقوم بتعيين المُعامِلات parameters على نطاق العمليّة الوسطاء Proxies: يتكون من المُعامِلات الافتراضيّة defaults، الاستماع listen، الواجهة الأماميّة frontend، والواجهة الخلفيّة backend. مرّة أخرى إن لم يسبق لك أن سمعت عن مفاهيم أو المصطلحات الأساسيّة لموازنة الحمل، فقم بالرجوع إلى هذا الدّرس: مقدّمة إلى HAProxy ومبادئ موازنة الحمل (Load Balancing). إعداد HAProxy: العمومي يجب أن يتم ضبط إعدادات HAProxy على الخادوم haproxy-www. في البداية لنقم بعمل نسخة من الملف haproxy.cfg الافتراضي: cd /etc/haproxy; sudo cp haproxy.cfg haproxy.cfg.orig نقوم الآن بفتح الملف haproxy.cfg باستخدام مُحرِّر نصوص: sudo vi /etc/haproxy/haproxy.cfg سنشاهد وجود قسمين معرّفين مسبقًا: global و defaults، سنلقي نظرة في البداية على بعض المعاملات القياسية default. تحت القسم defaults نبحث عن الأسطر التالية: mode http option httplog يقوم اختيار http كوضع بضبط HAProxy ليعمل كموازن حمل عن طريق الطبقة 7 (أو طبقة التطبيقات)، يعني هذا أنّ موازن الحمل سينظر إلى محتوى طلبات http ويقوم بتمريرها إلى الخادوم المناسب اعتمادًا على القواعد المعرّفة في الواجهة الأماميّة frontend، إن لم يكن هذا المفهوم مألوفًا لديك فمن فضلك اقرأ قسم أنواع موازنة الحمل في درس مقدّمة إلى HAProxy. لا تقم بإغلاق ملف الإعدادات الآن، لأنّنا سنضيف إعدادات الوسيط. إعداد HAProxy: الوسطاء إعداد الواجهة الأماميّة أول شيء نريد إضافته هو واجهة أماميّة frontend، ولأجل إعداد أساسي لوسيط عكسي وموازنة حمل عن طريق الطبقة 7 سنحتاج لتعريف قائمة تحكّم وصول ACL تُستخدَم لتوجيه حركة مرور بياناتنا إلى خواديم الواجهة الخلفيّة المناسبة، هنالك العديد من قوائم تحكّم الوصول التي يُمكن استخدامها في HAProxy، سنغطي فقط واحدة منها في هذا الدّرس (وهي path_beg)، ولأجل الحصول على قائمة كاملة من قوائم تحكّم الوصول في HAProxy قم بمراجعة التّوثيق الرسميّ: HAProxy ACLs. نضيف واجهتنا الأماميّة www في نهاية الملف، تأكّد من أن تضع عنوان IP الخاص بخادوم haproxy-www لديك بدلًا من haproxy_www_public_IP: frontend www bind haproxy_www_public_IP:80 option http-server-close acl url_wordpress path_beg /wordpress use_backend wordpress-backend if url_wordpress default_backend web-backend وهذا شرح لما يعنيه كل سطر من المقطع السابق المأخوذ من إعدادات الواجهة الأماميّة: frontend www: يُعيِّن واجهة أماميّة اسمها "www"، حيث سنستخدمها للتعامل مع حركة مرور بيانات www الواردة. bind haproxy_www_public_IP:80: ضع عنوان IP خادوم haproxy-www لديك بدلًا من haproxy_www_public_IP، يُخبر هذا السطر HAProxy أنّ هذه الواجهة الأماميّة ستتعامل مع حركة مرور بيانات الشبكة الواردة إلى عنوان IP هذا على هذا المنفذ. option http-server-close: يقوم بتمكين وضع إغلاق اتصال HTTP على الخادوم، ويحافظ على القدرة على دعم ترويسة HTTP keep-alive وتقنيّة HTTP pipelining على العميل (وهي تقنيّة لإرسال العديد من طلبات HTTP ضمن اتصال TCP وحيد بدون انتظار الموافقة لها)، يسمح هذا الخيار بأن يقوم HAProxy بمعالجة طلبات متعدّدة للعميل ضمن اتصال وحيد، والذي عادة ما يزيد من الأداء. acl url_wordpress path_beg /wordpress: يُعيِّن قائمة تحكّم وصول ACL تُدعى url_wordpress والتي تكون قيمتها صحيحة true إن كان مسار الطلب يبدأ بـ "wordpress/"، على سبيل المثال http://example.com/wordpress/hello-world. use_backend wordpress-backend if url_wordpress: يقوم بإعادة توجيه أي حركة مرور بيانات تتوافق مع قائمة تحكّم الوصول url_wordpress إلى wordpress-backend، والتي سنقوم بتعريفها قريبًا. default_backend web-backend: يُحدِّد أنّه أي حركة مرور بيانات لا تتوافق مع قاعدة use_backend سيتم تمريرها إلى web-backend، والتي سنقوم بتعريفها في الخطوة القادمة. إعداد الواجهة الخلفية Backend بعد أن تنتهي من إعداد الواجهة الأماميّة، قم الآن إضافة واجهتك الخلفيّة الأولى عن طريق إضافة الأسطر التالية، تأكّد من أن تضع عنوان IP المناسب بدلًا من web_1_private_IP: backend web-backend server web-1 web_1_private_IP:80 check وهذا شرح لما يعنيه كل سطر من المقطع السابق المأخوذ من إعدادات الواجهة الخلفيّة: backend web-backend: يُعيِّن واجهة خلفيّة تُدعى web-backend. server web-1 ... : يُعيِّن خادوم واجهة خلفيّة يُدعى web-1، مع عنوان IP الخاص (وهو الذي يجب أن تستبدله) والمنفذ الذي يستمع عليه، وهو 80 في هذه الحالة، يُخبِر الخيار check مُوازِن الحمل أن يُجري دوريًّا تحقّق من السّلامة على هذا الخادوم. بعدها أضف الواجهة الخلفيّة لتطبيق ووردبريس لديك: backend wordpress-backend reqrep ^([^\ :]*)\ /wordpress/(.*) \1\ /\2 server wordpress-1 wordpress_1_private_IP:80 check وهذا شرح لما يعنيه كل سطر من المقطع السابق المأخوذ من إعدادات الواجهة الخلفيّة: backend wordpress-backend: يُعيِّن واجهة خلفيّة تُدعى wordpress-backend. reqrep ... : يعيد كتابة الطلبات من wordpress/ إلى / عند تمرير حركة مرور البيانات إلى خواديم ووردبريس، وهو ليس ضروريًّا إن كان تطبيق ووردبريس مُثبّتًا على جذر root الخادوم ولكن نحتاج إليه لقابلية النفاذ عبر wordpress/ على خادوم HAProxy. server wordpress-1 ... : يُعيِّن خادوم واجهة خلفيّة يُدعى wordpress-1، مع عنوان IP الخاص (وهو الذي يجب أن تستبدله) والمنفذ الذي يستمع عليه، وهو 80 في هذه الحالة، يُخبِر الخيار check مُوازِن الحمل أن يُجري دوريًّا تحقّق من السّلامة على هذا الخادوم. إعدادات HAProxy: الإحصائيات Stats إن أردت تمكين إحصائيّات HAProxy، والتي قد تكون مفيدة في تحديد كيفيّة تعامل HAProxy مع حركة مرور البيانات الواردة، ستحتاج إلى إضافة الأسطر التالية إلى إعداداتك: listen stats :1936 stats enable stats scope www stats scope web-backend stats scope wordpress-backend stats uri / stats realm Haproxy\ Statistics stats auth user:password وهذا شرح لما تعنيه الأسطر غير البديهيّة من المقطع السابق المأخوذ من إعدادات listen stats: listen stats :1936: يقوم بإعداد صفحة إحصائيّات HAProxy لتكون قابلة للنفاذ على المنفذ 1936 (أي http://haproxy_www_public_IP:1936). stats scope ... : يجمع الإحصائيّات على الواجهة المُحدّدة سواء كانت أماميّة أو خلفيّة. / stats uri: يُعيِّن رابط صفحة الإحصائيّات إلى / . stats realm Haproxy\ Statistics: يقوم بتمكين الإحصائيّات وتعيين اسم الاستيثاق realm Authentication (وهو استيثاق ذو نافذة منبثقة)، يُستخدَم بالترابط مع الخيار stats auth. stats auth haproxy:password: يُعيِّن اعتمادات credentials الاستيثاق لصفحة الإحصائيّات، قم بوضع اسم المستخدم وكلمة السّر الخاصّة بك. الآن قم بالحفظ والإغلاق، عند تشغيل HAProxy تكون صفحة الإحصائيّات متوفّرة عبر الرابط http://haproxy_www_public_ip:1936/ حالما تبدأ خدمة HAProxy لديك، تكون HAProxy جاهزة الآن لتشغيلها ولكن فلنقم بتمكين التسجيل logging أولًا. تمكين تسجيل HAProxy إنّ تمكين التسجيل في HAProxy بسيط جدًّا، قم في البداية بتحرير الملف rsyslog.conf: sudo vi /etc/rsyslog.conf ثم ابحث عن السطرين التاليين وأزل التعليق عنهما لتمكين استقبال UDP syslog، يجب أن تبدو كما يلي عند الفراغ منها: $ModLoad imudp $UDPServerRun 514 $UDPServerAddress 127.0.0.1 الآن أعد تشغيل rsyslog لتمكين الإعدادات الجديدة: sudo service rsyslog restart تم تمكين تسجيل HAProxy الآن، سيتم إنشاء ملف السّجل في المسار var/log/haproxy.log/ بعد أن يتم تشغيل HAProxy. تحديث إعدادات ووردبريس الآن وقد تم تغيير رابط تطبيق ووردبريس فيجب علينا تحديث بعض الإعدادات في ووردبريس. قم بتعديل الملف wp-config.php على أي خادوم ووردبريس، هذا الملف موجود في مكان تثبيت ووردبريس (في هذا الدّرس تم تثبيته على المسار var/www/example.com/ ولكن قد يكون مختلفًا لديك): cd /var/www/example.com; sudo vi wp-config.php ابحث عن السطر الموجود في بداية الملف الذي يحتوي على ('define('DB_NAME', 'wordpress وقم بإضافة الأسطر التالية فوقه مع استبدال http://haproxy_www_public_IP: define('WP_SITEURL', 'http://haproxy_www_public_IP'); define('WP_HOME', 'http://haproxy_www_public_IP'); قم بحفظ وإغلاق الملف، تمّ الآن إعداد روابط ووردبريس لتشير إلى موازن الحمل بدلًا من خادوم ووردبريس الأصلي والتي تلعب دورها عند محاولتك النفاذ إلى لوحة تحكم ووردبريس. تشغيل HAProxy قم بتشغيل HAProxy على الخادوم haproxy-www ليتم تطبيق تغييرات الإعدادات: sudo service haproxy restart إتمام الوسيط العكسي Reverse Proxy أصبحت الآن تطبيقاتنا قابلة للوصول إليها عبر نفس المجال، example.com، عبر الوسيط العكسي للطبقة 7، ولكن لم يتم تطبيق موازنة الحمل عليها بعد، تبدو الآن البيئة لدينا كالمخطط التالي: وفقًا للواجهة الأماميّة التي عرفناها سابقًا، هذا وصف حول كيفيّة تمرير HAProxy لحركة مرور البيانات: http://example.com/wordpress: سيتم إرسال أي طلب يبدأ بـ wordpress/ إلى wordpress-backend (والذي يتكون من الخادوم wordpress-1). http://example.com/: سيتم إرسال أيّة طلبات أخرى إلى web-backend (والذي يتكون من الخادوم web-1). إن كان كل ما تريد فعله هو استضافة تطبيقات متعدّدة على مجال وحيد فقد أنجزت هذا بنجاح، أمّا إن أردت موازنة حمل تطبيقاتك أكمل قراءة الدّرس. كيفية إضافة موازنة الحمل موازنة حمل الخادوم web-1 لموازنة حمل خادوم ويب أساسي، كل ما تحتاج إليه هو إنشاء خادوم ويب جديد يمتلك إعدادات ومحتوى مطابق لخادوم الأصلي، سندعو هذا الخادوم الجديد: web-2. لديك خياران عند إنشاء الخادوم الجديد: إن كنت تملك خيار إنشاء خادوم جديد انطلاقًا من صورة web-1، فهذه هي الطريقة الأبسط لإنشاء web-2. إنشاؤه من الصفر، تثبيت نفس البرمجيّات، إعداده بشكل مماثل، ومن ثمّ نسخ محتوى جذر خادوم Nginx من web-1 إلى web-2 باستخدام rsync (اقرأ درس كيف تستخدِم Rsync لمزامنة مجلّدات بين الجهاز المحلّي والخادوم). ملاحظة: إن كل من الطريقتين السابقتين تقوم بإنشاء نسخة لمحتويات جذر الخادوم مرّة وحيدة، لذلك إن قمت بتحديث أي من الملفّات على أحد خواديمك، web-1 أو web-2، فتأكّد من مزامنة الملفّات مرّة أخرى. بعد أن يتم إعداد خادوم ويب المماثل لديك، قم بإضافته إلى web-backend ضمن إعدادات HAProxy. على الخادوم haproxy-www قم بتحرير الملف haproxy.cfg: sudo vi /etc/haproxy/haproxy.cfg ابحث عن القسم web-backend من الإعدادات: backend web-backend server web-1 web_1_private_IP:80 check وبعدها أضف الخادوم web-2 في السطر التالي: server web-2 web_2_private_IP:80 check قم بحفظ وإغلاق الملف، وأعد تحميل HAProxy لتطبيق التغييرات: sudo service haproxy reload يمتلك web-backend الآن خادومين يتعاملان مع حركة مرور البيانات غير المرتبطة بووردبريس، أي تمّ إعداد موازنة الحمل عليه بنجاح. موازنة حمل الخادوم wordpress-1 إنّ موازنة حمل تطبيق مثل ووردبريس أكثر تعقيدًا بقليل من موازنة حمل خادوم ثابت، لأنّه يجب عليك الاهتمام بأشياء مثل مزامنة الملفّات المُحمّلة ومستخدمي قواعد البيانات الإضافيّين. أكمل الخطوات الثلاث التالية لإنشاء خادوم ووردبريس الثاني wordpress-2: إنشاء خادوم تطبيق ويب الثاني. مزامنة ملفّات تطبيق الويب. إنشاء مستخدم قاعدة بيانات جديد. بعد أن تقوم بإنشاء الخادوم wordpress-2 مع إعداد قاعدة البيانات بشكل صحيح فكل ما تبقى عليك فعله هو إضافته إلى wordpress-backend ضمن إعدادات HAProxy. على الخادوم haproxy-www قم بتحرير الملف haproxy.cfg: sudo vi /etc/haproxy/haproxy.cfg ابحث عن القسم wordpress-backend من الإعدادات: backend wordpress-backend server wordpress-1 wordpress_1_private_IP:80 check وبعدها أضف الخادوم wordpress-2 في السطر التالي: server wordpress-2 wordpress_2_private_IP:80 check قم بحفظ وإغلاق الملف، وأعد تحميل HAProxy لتطبيق التغييرات: sudo service haproxy reload يمتلك web-backend الآن خادومين يتعاملان مع حركة مرور البيانات غير المرتبطة بووردبريس، أي تمّ إعداد موازنة الحمل عليه بنجاح. الخاتمة بعد أن أتممت الآن هذا الدّرس يجب أن تكون قادرًا على توسيع موازنة الحمل والوسيط العكسي لإضافة المزيد من التطبيقات والخواديم لبيئتك لجعلها تتوافق بشكل أفضل مع احتياجاتك، تذكّر أنّه لا توجد حدود لطرق إعداد بيئتك، وربّما تحتاج إلى البحث في توثيق HAProxy إن أردت متطلبات أكثر تعقيدًا. ترجمة -وبتصرّف- للمقال How To Use HAProxy As A Layer 7 Load Balancer For WordPress and Nginx On Ubuntu 14.04 لصاحبه Mitchell Anicas.
  13. إذا أردت بناء موقع ووردبريس مميز وينسجم مع أهدافك الشخصية والتجارية فيجب عليك حذف بعض الأشياء المُحزّمة بشكل افتراضي مع ووردبريس. خبراء ووردبريس يملكون عادة قائمة من الأشياء لإضافتها وحذفها بشكل تلقائي والتي يقومون بها دون تردد. إذا ماذا تحتوي قائماتهم؟ القائمة التالية تحتوي على ما يمكنك فعله لجعل موقعك يعمل ويبدو أفضل من السابق. 1. التخلص من "Howdy" إذا كنت تستخدم النسخة الإنجليزية من ووردبريس، فأوّل شيء ستراه عند تسجيل دخولك إلى الووردبريس هي لوحة التحكم (dashboard)، وستلاحظ أن اسمك مكتوب في الجانب الأعلى الأيمن من الصفحة، لكن ستجد قبل اسمك كلمة "Howdy" وهي التحية الافتراضية التي تأتي مع ووردبريس. يمكنك إزالة "Howdy" باستخدام شيفرة قصيرة (code snippet). من المفترض أن تكون هذه الكلمة طريفة لبعض الأشخاص إلا أنها لن تكون كذلك للبعض الآخر الذين يريدون أن يظهروا بمظهر مُحترف. شيفرة قصيرة (code snippet) يمكنها إزالة "Howdy". فبماذا سيفكر عميل -لم يستخدم ووردبريس سابقا- بعد أن ترسل له صورة من لوحة التحكم الخاصة بموقعك ورأى فيها "Howdy, Bob"؟ سيفترض على الأغلب أنك أنت من فعل ذلك، وقد يؤثّر ذلك على العلاقة التي بينكما. لذلك لماذا تفسد علاقات عملك بشيء سخيف مثل هذا، خاصة إذا كان يمكنك إزالته بسهولة؟ كل ما تحتاجه لاستبدال "Howdy" هو إضافة هذه الشيفرة القصيرة التّالية إلى ملف functions.php في قالبك: add_filter('gettext', 'change_howdy', 10, 3); function change_howdy($translated, $text, $domain) { if (!is_admin() || 'default' != $domain) return $translated; if (false !== strpos($translated, 'Howdy')) return str_replace('Howdy', 'Welcome', $translated); return $translated; } تذكر أنه من الأفضل دائما أن تنشئ نسخة احتياطية من موقعك قبل القيام بتغييرات في ملفات PHP، أو يمكنك فعل ما هو أفضل وذلك بإنشاء قالب مشتق (child theme) لإضافة التخصيصات الخاصة بك. 2. تخلص من "موقع ووردبريس عربي آخر" هذه الخطوة بسيطة لكنها مهمة لأنني أجد الكثير من المواقع التي يتم تحديثها بانتظام وتحتوي على محتويات مفيدة تضع شعار "موقع ووردبريس عربي آخر"، وهذا الشيء لا يغتفر. لتغييره، كل ما تحتاجه هو تسجيل دخولك إلى موقعك ثم الضغط على: إعدادات > عام وبعد ذلك احذف هذه الجملة من المربع بجانب "سطر الوصف" وضعْ جملة أُخرى خاصة بك. أو إذا لم ترغب بها، قم بحذفها وتجاوز قضية سطر الوصف كلية. يمكنك أيضا فعل ذلك عن طريق لوحة التخصيص: المظهر > تخصيص لا يوجد عذر لإبقاء عبارة "موقع ووردبريس عربي آخر" في موقعك. 3. تنظيف الشريط الجانبي يدعم ووردبريس الأشرطة الجانبية بشكل افتراضي وعند تثبيتك لقالب جديد ستجد أن هذه الأشرطة ممتلئة بودجات كثيرة مثل الأرشيف وآخر المشاركات وسحابة الكلمات الدلالية وغيرها، وعلى الرغم من أن هذه الودجات ستكون مناسبة في بعض الحالات، إلا أنها ليست كذلك دائما. توجد الكثير من الحالات التي لن تحتاج فيها لهذه الودجات، لذلك إذا أردت التحكم أكثر بموقعك ومظهره، سيكون من الأفضل إزالتها، يمكنك فعل ذلك عن طريق الذهاب إلى: المظهر > المربعات الجانبية ثم اسحب الودجات خارج مناطق الودجات في الجانب الأيمن من الشاشة وضعها في منطقة "ودجات متوفّرة". في الغالب، قوالب المدونات هي من أسوأ مفسدي الشريط الجانبي. 4. تنظيف لوحة التحكم تأتي لوحة تحكم ووردبريس ممتلئة بالكثير من المعلومات والودجات التي اعتاد المطورون المحترفون استخدامها، هذه المعلومات التي تظهر داخل هذه الودجات يمكن أن تكون مفيدة لأنها تضع لك كل ما تريده عند تسجيل دخولك، لكن، إذا لم تكن معتادا عليها، ستكون كل هذه الودجات مربكة لك. لذلك ستجد أن الكثير من المطورين يٌبسِّطون لوحات التّحكّم الخاصة بهم عن طريق إزالة الودجات التي لا يحتاجونها أو الودجات التي ستربك عملاءهم، إضافة إلى ذلك إن لوحة التحكم الخفيفة وغير الممتلئة تبدو أفضل، أعني لا تحتاج إلى رؤية آخر أخبار ووردبريس عند عملك على موقعك، أليس كذلك؟ يمكنك إزالة الودجات التي لا تتوقع استخدامها عن طريق إضافة بعض الشيفرات البرمجية إلى ملف functions.php في قالبك. ستكون الخطوة الأولى من عملية تنظيف لوحة التحكم هي التخلص من الودجات الافتراضية التي لن تحتاجها أنت وعملاؤك، هذه الودجات تدعى بـ meta boxes وستجد بشكل افتراضي ودجات browser_nag و right_now و activity و quick_press. يوفر لك ووردبريس Codex تعليمات برمجية بسيطة لإزالة ودجات لوحة التحكم باستخدام دالة ()remove_meta_box، وستكون الشيفرة البرمجية مشابهة لهذه: // Main column (left): $wp_meta_boxes['dashboard']['normal']['high']['dashboard_browser_nag'] $wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now'] $wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity'] // Side Column (right): $wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press'] $wp_meta_boxes['dashboard']['side']['core']['dashboard_primary'] إذا لم تحتج إلى تغيير تخطيط لوحة التحكم كثيرا فسيكون إضافة شيفرة برمجية لإزالة الودجات هو أفضل حل ، وإذا احتجت إلى المزيد من التغييرات أو كنت ترغب بإعطاء عميلك بعض التحكم بها، سيكون من الأفضل استخدام ملحق. تتضمن عملية تنظيف لوحة تحكمك التأكد من إظهار كل شيء تريده، فعلى سبيل المثال إذا أردت أن توفّر لعملائك و/أو المستخدمين تعليمات لكيفية النشر بدون كتابة درس تعلمي منفصل، فيمكنك فعل ذلك عن طريق إنشاء ودجت مخصص يعرض لك المعلومات على لوحة التحكم. فعل ذلك يشبه طريقة إزالة الودجات، فهو يتضمن إضافة شيفرة برمجية إلى ملف functions.php الذي يحتوي على تفاصيل ودجت لوحة التحكم المخصصة التي ترغب بإضافتها. ستبدو الشيفرة البرمجية الخاصة بالودجت البسيطة كالتالي: add_action( 'wp_dashboard_setup', 'register_my_dashboard_widget' ); function register_my_dashboard_widget() { wp_add_dashboard_widget( 'my_dashboard_widget', 'My Dashboard Widget', 'my_dashboard_widget_display' ); } function my_dashboard_widget_display() { echo 'Hello, I am Mr. Widget'; } وبهذا ستنشئ ودجت لوحة تحكم تحتوي على أية معلومات ترغب بها ومن ثم تعرضها بالطريقة التي تريدها، وهذا جيد لعرض معلومات، وكما أشرت سابقا، إن الملحقات يمكنها مساعدتك في الودجات الأخرى مثل روابط تصنيف المشاركات و غيرها… 5. إضافة شعار إلى موقعك وإلى لوحة التحكم في العادة، من الأفضل أن تخصص قالب ووردبريس الجديد أكثر ما يمكن، وستكون خطوتك الأولى هي إضافة شعار مخصص يظهر في الغالب في أعلى موقعك ويوفر طريقة للزوار للتعرّف على علامتك التجارية فورا. يمكنك تغيير هذا الشعار عن طريق الذهاب إلى: المظهر > تخصيص ثم استخدم تخصيصات قالبك لرفع شعارك. إذا أردت وضع شعارك على لوحة تحكم موقعك أيضا -وحذف شعار وودبريس الافتراضي- يمكنك فعل ذلك بإضافة بعض الشيفرات البرمجية، وسيجعل هذا موقعك يبدو أكثر احترافية ولن يرتبك عملاؤك من ظهور علامة تجارية مُختلفة (شعار ووردبريس) على لوحة التّحكّم لديهم. يمكنك استبدال شعار ووردبريس بواحد خاص بك بإضافة هذه الشيفرة البرمجيةإلى functions.php: /**REPLACE WP LOGO**/ function admin_css() { echo ''; } add_action('admin_head','admin_css'); /**END REPLACE WP LOGO**/ ثم أضف هذه الشيفرة إلى admin.css: #header-logo { background-image: url(images/client_logo.jpg); } ستحتاج إلى التأكد من أن مسار ملف الصورة صحيح، أمر سهل أليس كذلك؟ 6. إضافة رمز المفضلة favicon يمكنك تغيير رمز المفضلة باستخدام مخصص القالب. رغم سهولة القيام بذلك، إلّا أن قلّة قليلة فقط تقوم بذلك. في حالة لم تكن تعرف ما هو رمز المفضلة، فهو عبارة عن صورة صغيرة تظهر بجانب رابط عنوان موقعك في نافذة متصفحك، وهي فرصة أخرى لإظهار علامتك التجارية وجذب الانتباه إلى التفاصيل، وهذا الأمر ينصح به المطورون المحترفون. يمكنك إضافة رمز المفضلة بسهولة عن طريق الذهاب إلى: المظهر > تخصيص ثم ارفع رمز المفضلة في مُخصّص القالب، إذا لم تعرف كيف تصنع رمز المفضلة فإن هنالك العديد من الأدوات التي ستساعدك على فعل ذلك مثل RealFaviconGenerator و Heroic Favicon Generator. 7. تخصيص الروابط الثابتة من الأشياء الأخرى التي يمكنك القيام بها ليبدو موقعك أكثر احترافية هي الروابط الثابتة المخصصة، فعند تثبيت قالب ووردبريس لأول مرة، سيتم تعيين الروابط الثابتة كسلسلة نصية من الأرقام بشكل افتراضي، وهي ليست جميلة ولا تساعدك في رفع ترتيبك لدى محركات البحث،أي أنك ستخسر الكثير من الزوار إذا أبقيتها، بالإضافة إلى أن السلسلة النصية من الأرقام تزعج قراء روابط موقعك. لكن لا داعي للقلق، يمكنك إصلاح ذلك، اذهب إلى: الإعدادات > روابط دائمة في لوحة التحكم وغيّرها من "عادي" إلى "عنوان المقالة" (post name)، وبهذه الطريقة، كل مشاركة سيتم حفظها مع رابط يشير إلى عنوان المشاركة أو الصفحة بدلا من أرقام غير مفهومة. 8. التخلص من Hello Dolly تم إضافة ملحق "Hello, Dolly" إلى نسخة ووردبريس باللغة الإنجليزية منذ مدة طويلة، وهو موجود بشكل افتراضي ويعرض كلمات من أغنية "Hello, Dolly" لـ Louis Armstrong في أعلى لوحة التحكم على الجانب الأيمن. هذا كل ما تقوم به هذه الإضافة، وعلى الرغم من أنها تُظهر روح الدعابة لصانعي ووردبريس، إلا أنها ليست مهنية، خاصة إذا كنت تطور مواقع لشركات. يمكنك التخلص من Hello, Dolly بسهولة عن طريق الذهاب إلى Plugins "الملحقات" في لوحة التحكم والبحث عنها. عندما تجدها انقر على Deactivate "تعطيل" في اسم الملحق أو إذا كان ذلك غير كافيًا بالنسبة لك، احذف المُلحق بشكل كامل. 9. إضافة صفحة 404 مخصصة طريقة أخرى ليظهر موقعك بطابع احترافي ومهني وذلك عن طريق إنشاء صفحة 404 مخصصة. حتى لو بذلت جهدًا كبيرًا للتأكد من عدم وجود روابط معطلة في موقعك، سيظل بعض الزوار يكتبون روابط خاطئة لصفحات موقعك أو يصلون إلى موقعك عبر نتائج غير محدّثة من محركات البحث، للتخلص من هذه النهاية المسدودة، ستحتاج إلى إنشاء صفحة 404 تساعد زوارك الضالين للعودة إلى المكان الذي تريده. في الوقت الحالي، أغلب القوالب تأتي مع صفحة 404 بشكل افتراضي لكنها تخبر الزائر فقط أن الصفحة غير موجودة، وقد توفر رابط للعودة إلى الصفحة الرئيسية، وهذا غير كافٍ، أعني أن الزائر ذهب إلى صفحة غير موجودة، لكن قد تكون الصفحة التي يبحث عنها موجودة في موقعك، أليس كذلك؟ لن تحتاج إلى بناء صفحة 404 مخصصة من الصفر فتوجد ملحقات عديدة تفعل ذلك مثل 404page و 404 Page by SeedProd. 10. تخصيص تذييل الصفحة ستجد أن التذييل في أغلب القوالب عام للغاية، ففي كثير من الأحيان ستخبرك هذه المنطقة عن القالب الذي يستخدمه الموقع، ومعلومات حول حقوق النشر و اسم الموقع، يمكنك تغيير هذا النص لكنه سيكون أصعب من تغيير اتجاه هذه المعلومات أو إضافة حقول جديدة. يمكنك تخصيص تذييل الصفحة عن طريق استخدام الودجات، لذلك إذا كان القالب يسمح لك باستخدام ودجات التذييل، يمكنك إضافة بعض المعلومات الأخرى إلى هذه المنطقة، فمثلا يمكنك إضافة ودجت نص مخصص مع بيانات الاتصال بك، أو يمكنك إضافة أيقونات شبكات التواصل الاجتماعي في ودجت أخرى، أو يمكنك أيضا إضافة بعض الودجات القياسية في هذه المنطقة مثل أحدث المُشاركات أو قائمة التصفح الرئيسية. بالطبع توجد بعض الملحقات التي توفر لك المزيد من التخصيص، فعلى سبيل المثال يسمح لك ملحق Footer Putter بإضافة معلومات حقوق النشر وعلامتك التجارية المسجلة، وسيسمح لك ملحق Header and Footer بإضافة شيفرات الإعلانات، أما بالنسبة إلى WP Custom Header Footer فسيسمح لك بإضافة شيفرات CSS و JS مخصصة دون لمس ملفات القالب. إن الاهتمام بتخصيص منطقة التذييل سيُظهر موقعك بمظهر مهني واحترافي. 11. استخدام ملحقات White Label يمكنك استخدام أحد ملاحق white label لتخصيص لوحة التحكم بسرعة وسهولة دون الحاجة إلى الخوض في الشيفرات البرمجية، ونحن ننصح بـ Ultimate Branding، فهذا الملحق مفيد للغاية ويجعل عملية تخصيص لوحة التحكم لعلامة تجارية مُعيّنة أسهل دون كتابة أية شيفرات برمجية. باستخدام هذا الملحق، يمكنك تخصيص شاشة تسجيل الدخول والتذييل وتذييل لوحة التحكم والودجات وغيرها، فهي تعطيك تحكمًا كاملًا على جزء الواجهة الخلفية (backend) لموقعك لتتمكن من تخصيص كل التفاصيل، وهذا شيء مهم للغاية إذا كنت توفر لوحة تحكم لعملائك، لذلك فإن اهتمامك بالتفاصيل سيجعلهم ينبهرون. إن ملحق White Label Branding هو خيار جيد آخر، فهو يوفر لك المميزات السابقة ويسمح بتخصيص لوحة التحكم، وإضافة إلى ذلك فهو يأتي بأدوات إضافية مثل التحكم بالتصفح والقوائم، والسماح بإخفاء شريط المدير، وإضافة ودجات و meta boxes في لوحة التحكم، ويمكنك أيضا تخصيص الألوان والأزرار وتغيير كل ما يراه المستخدم العادي على لوحة التحكم. الخاتمة الانطباعات الأولية مهمة للغاية لعلامتك التجارية ولموقعك على الإنترنت، وستبدأ بخسارة عملائك أو/و زبنائك إذا كان موقعك لا يبدو احترافيًا ومهنيًا، لكن لحسن الحظ ليس من الصعب صقل موقعك ليظهر كأن محترفًا حقيقيًا قام ببنائه. فبإضافة مميزات -وحذف أخرى- يُمكنك تحسين مظهر موقعك بشكل كبير. ما الأشياء التي يجب عليك إضافتها/حذفها إلى موقع ووردبريس الخاص بك ليظهر بمظهر احترافي؟ ما الأشياء الافتراضية التي يجب تغييرها؟ شاركنا تجاربك في التّعليقات. ترجمة -وبتصرف- للمقال: Add (or Remove) These 11 Things From Your WordPress Site and Look Like a Pro لصاحبته Brenda Barron.
  14. مرّ معنا أثناء إضافة أرقام الصفحات كيف أضفنا ملف CSS جديد عن طريق وضع بضعة أسطر في ملف functions.php في ملفات القالب. سنتناول في هذا الدرس الشرح التفصيلي لهذه الآلية، وهي الطريقة الآمنة لإضافة ملفات JavaScript و CSS. فهرس السلسلة: مقدمة إلى تطوير قوالب ووردبريس: تحويل صفحة HTML إلى قالب ووردبريس التصفيح (Pagination) في قوالب ووردبريس إضافة قوائم التنقل (Navigation Menu) إلى قالب ووردبريس صف وتسجيل ملفات Javascript و CSS في قوالب ووردبريس (هذا الدرس) ما المقصود بالصف؟ هو وضع الملف في صفّ/دور/طابور (queue) لتقوم ووردبريس بمعالجته لاحقاً. تخيل أنك تضع الملف في دور/طابور شراء جهاز آي فون جديد مثلاً! وعندما يحين موعد عرض الملفات، تقوم ووردبريس بمعالجة الصفّ ومتطلبات كل ملفّ فيه، ثم إعادة ترتيب الصف حسب المتطلبات، وأخيراً عرض الملفات في مكانها المناسب مع متطلباتها. الخطوات العامة سنعرض الآن الخطوات بشكل عام، ثم تفصيلها وطريقة استخدامها في الفقرة اللاحقة. لصفّ ملفٍّ ما، سواء كان ملف JavaScript أو CSS نحتاج إلى: استخدام الحدث (action) المناسب. تسجيل الملف المراد استخدامه؛ حيث يجب استخدام معرّف (handle) للملف، مسار الملف، ويمكن تحديد متطلباته (dependencies) إن وُجدت. صفّ الملف (enqueue)؛ باستخدام المعرّف المُستخدم أثناء تسجيل الملف. تسجيل وصف ملفات CSS تسجيل ملف CSS لتسجيل ملفٍّ جديد نقوم باستخدام دالّة wp_register_style، يمكن للدالّة أن تقبل المحدّدات التالية: handle$: مطلوب، هو المعرّف الخاص بالملف، الذي سيتم استخدامه عند صفّ الملف (enqueue). src$: مطلوب، هو رابط (URL) ملف CSS المطلوب تسجيله، مثل:http://example.com/css/mystyle.css، لكن يجب ألا يتم استخدام الرابط بهذا الشكل، بل يجب أن يكون أكثر مرونة (التفصيل في الملاحظة بعد نهاية الفقرة). deps$: مصفوفة من المعرّفات، التي تمثّل متطلبات الملف الذي نقوم بتسجيله، كي يتم صفّها قبل صفّ الملف المُسجَّل. القيمة الافتراضية: مصفوفة فارغة ()array. ver$: إصدار الملف المُسجَّل، تقوم ووردبريس بوضعه كرقم بعد رابط الملف، على الشكل:custom.css?ver=123، إن لم يتم وضع قيمة لهذا المحدّد، فسيتم وضع إصدار ووردبريس الحالي بدلاً منه، لعدم وضع أي رقم نضع قيمة المحدّد null. القيمة الافتراضية:false. media$: قيمة حقل media الذي سيتم استخدامه مع وسم <link> أثناء صفّ الملف، القيمة الممكنة: all، screen، handheld، print. القيمة الافتراضية هي all. ملاحظة هامة: عند تسجيل أو صفّ الملفات، يجب أن تكون الروابط مرنة، أي أن يتم استبدال اسم الموقع/النطاق عن طريق دوالّ ووردبريس. مثال خاطئ: add_action( 'wp_enqueue_scripts', 'register_invalid_style' ); function register_invalid_style() { wp_register_style( 'my-invalid-style', 'http://localhost/wp-content/themes/my-theme/css/custom.css' ); } هل لاحظتم أنني وضعت المسار كاملاً؟ ترى هل سيعمل الرابط السابق إن قمنا باستخدام القالب على موقع على الإنترنت بدلاً من الموقع المحلّي؟ بالتأكيد لا! مثال صحيح: add_action( 'wp_enqueue_scripts', 'register_valid_style' ); function register_valid_style() { wp_register_style( 'my-valid-style', get_template_directory_uri() . '/css/custom.css' ); } تكون النتيجة في المتصفح مشابهة للتالي: <link rel='stylesheet' id='my-valid-style-css' href='http://localhost:8000/wp-content/themes/my-theme/css/custom.css?ver=4.2' type='text/css' media='all' /> تقوم دالّة ()get_template_directory_uri بإرجاع رابط القالب الفعّال (active)، مثلاً: http://example.com/wp-content/themes/my-theme، بحيث يكون اسم النطاق حسب الموقع الحالي، ثم يقوم المطوّر بإضافة مسار الملّف الذي يريده بعد رابط القالب الفعّال. إن أردنا تسجيل وصفّ الملفات ضمن الإضافات بدلاً من القوالب، نقوم باستخدام دالّة ()plugins_url بدلاً من الدالّة السابقة الخاصة بالقوالب. صف ملف CSS لصفّ ملف CSS نستخدم دالّة wp_enqueue_style، محدّدات الدالّة هي نفسها محدّدات دالّة wp_register_style، باستثناء: محدّد handle$ هو المحدد الوحيد المطلوب في حال استخدامنا لمعرّف ملف مُسجّل مسبقاً. محدد src$ غير مطلوب في حال نقوم باستخدام معرّف لملف مُسجّل مسبقاً، ومطلوب إن كنا نريد استخدام الدالّة لصفّ ملفّ غير مسجّل. فعوضاً عن تسجيل الملف بدالّة منفصلة ثم صفّه بدالّة أخرى، نقوم بصفّه مباشرة في هذه الدالّة. مثال عن صفّ ملف مسجّل مسبقاً: add_action( 'wp_enqueue_scripts', 'enqueue_style' ); function enqueue_style() { wp_enqueue_style( 'my-valid-style' ); } مثال عن صفّ ملف جديد دون تسجيل: add_action( 'wp_enqueue_scripts', 'register_enqueue_style' ); function register_enqueue_style() { wp_enqueue_style( 'my-valid-style', get_template_directory_uri() . 'my-theme/css/custom.css' ); } نلاحظ أننا في المثال الثاني استخدمنا دالّة wp_enqueue_style بشكل مماثل لدالّة wp_register_style. الفرق الرئيسي بين الطريقتين، أن الأولى تسمح لنا باستخدام الملف المُسجل في عدة أماكن، وتتيح مرونة أكبر بالتعامل مع الملفات. إلغاء صفّ أو إلغاء تسجيل ملف CSS قد نحتاج لإلغاء صفّ ملف، أو إلغاء تسجيله (كما سنرى في نهاية المقال)، تتيح ووردبريس دالّتين لهذين الغرضين هما: wp_dequeue_style لإلغاء صفّ ملف و wp_deregister_style لإلغاء تسجيل ملف. في كلا الدالّتين نقوم بتمرير محدّد واحد هو المعرّف الخاص بالملف الذي نريد إلغاء صفّه أو إلغاء تسجيله، لإلغاء صفّ إطار عمل Bootstrap مثلاً، نضع الأسطر التالية في ملف functions.php: add_action( 'wp_enqueue_scripts', 'dequeue_bootstrap' ); function dequeue_bootstrap() { wp_dequeue_style( 'bootstrap' ); } تسجيل وصفّ ملفات جافاسكريبت آلية تسجيل وصفّ ملفات جافاسكريبت هي مماثلة جداً للتعامل مع ملفات CSS، مع بعض الفروقات البسيطة التي سنستعرضها الآن. تسجيل ملف جافاسكريبت نقوم باستخدام دالّة wp_register_script، التي تقبل المحدّدات التالية: handle$: مطلوب، هو المعرّف الخاص بالملف، الذي سيتم استخدامه عند صفّ الملف (enqueue). src$: مطلوب، هو رابط (URL) ملف جافاسكريبت المطلوب تسجيله، مثل:http://example.com/js/myscript.js، لكن يجب ألا يتم استخدام الرابط بهذا الشكل، بل يجب أن يكون مرناً باستخدام ()get_template_directory_uri. deps$: مصفوفة من المعرّفات، التي تمثّل متطلبات الملف الذي نقوم بتسجيله، كي يتم صفّها قبل صفّ الملف المُسجَّل. القيمة الافتراضية: مصفوفة فارغة ()array. ver$: إصدار الملف المُسجَّل، تقوم ووردبريس بوضعه كرقم بعد رابط الملف، على الشكل:custom.js?ver=123، إن لم يتم وضع قيمة لهذا المحدّد، فسيتم وضع إصدار ووردبريس الحالي بدلاً منه، لعدم وضع أي رقم نضع قيمة المحدّد null. القيمة الافتراضية: false. in_footer$: بشكل افتراضي يتم صفّ ملفات جافاسكريبت وملفات CSS ضمن وسم <head>، لكن يمكن بوضع قيمة هذا المحدد true أن يتم صفّ ملفات جافاسكريبت في نهاية المستند، قبل إغلاق وسم <body/>، وهو الأفضل للأداء بالنسبة لزوار الموقع. القيمة الافتراضية: false. ملاحظة: صفّ ملفّات جافاسكريبت و CSS يتطلب وجود خطّاف ()wp_head ضمن القالب، وصفّ ملفات جافاسكريبت مع محدّد in_footer$ بقيمة true يتطلب وجود خطّاف ()wp_footer في القالب، قبل إغلاق وسم <body/>. صفّ ملف جافاسكريبت الاستخدام مشابه تماماً لصفّ ملف CSS، لكنه يتم عن طريق دالّة wp_enqueue_script، والتي تشابه بمحدداتها دالّة التسجيل wp_register_script. الفرق بين محددات دالة الصفّ ودالّة التسجيل الخاصة بملفات جافاسكريبت هي كالفرق بين محددات دالة الصف والتسجيل الخاصة بملفات CSS. محدّدات دالّة wp_enqueue_script هي نفسها محدّدات دالّة wp_register_script، باستثناء: محدّد handle$ هو المحدد الوحيد المطلوب في حال نقوم باستخدام معرّف لملف مُسجّل مسبقاً. محدد src$ غير مطلوب في حال نقوم باستخدام معرّف لملف مُسجّل مسبقاً، ومطلوب إن كنا نريد استخدام الدالّة صفّ ملفّ غير مسجّل. فعوضاً عن تسجيل الملف بدالّة منفصلة ثم صفّه بدالّة أخرى، نقوم بصفّه مباشرة في هذه الدالّة. إلغاء صفّ أو إلغاء تسجيل ملف جافاسكريبت طريقة إلغاء صفّ أو إلغاء تسجيل ملف جافاسكريبت هي مشابه للطريقة في ملفات CSS، لكن باستخدام دالّتي: wp_deregister_script و wp_dequeue_script. أمثلة وحالات استخدام بالمثال يتضح المقال، سنمرّ معاً على أربعة أمثلة وحالات استخدام لنرى من خلالها كيف يمكننا التعامل ثم الاستفادة من تسجيل وصفّ ملفات JavaScript و CSS: 1. عند استخدام إضافة رديئة الجودة لنفرض لسبب ما أنك تستخدم إضافة رديئة -لا تتبع المعايير ولا تستخدم أحد الإصدارات من المكتبات-، تتطلب هذه الإضافة وجود إصدارٍ قديم من مكتبة jQuery، بينما قالبك يستخدم الإصدار اﻷحدث منها. هل من المنطقي وجود نسختين من المكتبة في القالب؟ بالتأكيد لا. لحلّ هذه المشكلة نحن أمام ثلاثة خيارات: إن كانت الإضافة ليست رديئة الجودة كثيراً، وتقوم بصفّ مكتبة jQuery، فهذا شيء جيّد، يمكننا ببساطة إلغاء المكتبة من الصفّ وتنتهي المشكلة. إن كانت الإضافة رديئة كما وصفناها ولا تقوم بصفّ مكتبة jQuery، عندها يجب على المطوّر أن يقوم بالتعديل على ملفات الإضافة يدوياً لإلغاء تحميل مكتبة jQuery. وهناك احتمال كبير أن المطور سينسى التعديل الذي قام به، ومع مرور الأيام يقوم بتحديث الإضافة إلى إصدار جديد ويذهب التحديث اليدويّ الذي قام به! أو إن كان ذو ذاكرة قوية، سيقوم بالقيام بالتعديل اليدوي ذاته في كل مرة يظهر إصدار جديد من الإضافة. لكم أن تتخيلوا المعاناة التي ستصبح على كاهل المطوّر. الخيار الثالث والأسرع هو القيام بحذف هذه الإضافة رديئة الجودة والبحث عن واحدة أفضل منها تتبع المعايير والقواعد وتستخدم أحد الإصدارات من ملفات JavaScript و CSS. الخيار الثالث هو الأفضل لتقليل استخدام مسكنات ألم الرأس. من المهم اتباع المعايير والقواعد المتفق عليها حتى لا يقع المطوّر في الحُفر التي وُضعت تلك المعايير والقواعد من أجل تلافيها. 2. استخدام المكتبات الموجودة في ووردبريس ربّما حدّثتك نفسك في أحد الأيام أن تستعرض ملفات ووردبريس وترى محتواها، إنْ حدث ذلك فلا بدّ أنك رأيت الكثير من مكتبات جافاسكريبت مثل jQuery، jQuery UI، Backbone وغيرها. إن كانت هذه الملفات موجودة ضمن ووردبريس، فلمَ لا نقوم باستخدامها عند الحاجة إليها؟ لو كان القالب يحتاج إلى مكتبتيّ jQuery و jQuery UI فبدلاً من تحميل نسخة من كل مكتبة من الإنترنت ثم وضعها ضمن ملفات القالب واستخدامها، يمكننا بشكل مباشر استخدام نسخة jQuery و jQuery UI الموجودتان ضمن ووردبريس. بهذا نضمن الحصول على إصدار حديث من المكتبة يأتي مع كل تحديث لووردبريس بالإضافة لعدم التكرار (Don’t Repeat Yourself). من المكتبات الشهيرة المضمّنة في ووردبريس: jQuery jQuery UI Backbone jQuery Suggest Thickbox TinyMCE Underscore للاطلاع على كامل القائمة يمكن زيارة صفحة التوثيق. 3. استخدام jQuery بشكل مباشر من شبكة توصيل المحتوى (CDN) لا بدّ أنك سمعت بشبكة توصيل المحتوى (Content Delivery Network). تعريفها على ويكبيديا: هي مجموعة من الخوادم المتزامنة والموزعة والموجودة على الشبكة في أماكن جغرافية مختلفة، تحتوي على نسخ من البيانات. فالعميل يحصل على البيانات من الخادم الموجود في أقرب موقع جغرافي، بغرض تقليل التأخير الناتج في نقل البيانات. هناك موقع مخصص لاستخدام مكتبات JavaScript عن طريق شبكات توصيل المحتوى هو jsDelivr، سنقوم باستخدام رابط مكتبة jQuery منه (//cdn.jsdelivr.net/jquery/2.1.3/jquery.min.js) لنقوم بصفّها واستخدامها ضمن القالب، عوضاً عن استخدام النسخة المتضمنة في ملفات ووردبريس. للقيام بهذا نحتاج لوضع الأسطر القليلة التالي في ملف functions.php الخاص بقالبنا: add_action( 'wp_enqueue_scripts', 'register_jquery' ); function register_jquery() { wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', ( '//cdn.jsdelivr.net/jquery/2.1.3/jquery.min.js' ), false, null, true ); wp_enqueue_script( 'jquery' ); } قمنا بإلغاء تسجيل jQuery (كانت مسجلة مع الملف المتضمَّن في ووردبريس)، ثم قمنا بتسجيلها مع رابط الملف من شبكة توصيل المحتوى (CDN)، وأخيراً قمنا بصفّها (enqueue) ليتم إدراجها في القالب. 4. صفّ ملف جافاسكريبت يعتمد على jQuery في معظم الحالات نحتاج في القوالب لإضافة جافاسكريبت، سواء لإضافة حركات معيّنة أو لتعديل شيءٍ ما، وبسبب شهرة مكتبة jQuery فمعظم المطورين يعتمدون عليها كقاعدة أساسية لبناء ملفات جافاسكريبت الخاصة بقوالبهم. على فرض أن الملف الذي نريد إضافته يعتمد على مكتبة jQuery وهو موجود مع ملفات القالب في المسار: js/custom.js، لصفّ هذا الملف نقوم بإضافة الأسطر التالية إلى ملفfunctions.php: add_action( 'wp_enqueue_scripts', 'enqueue_custom_js' ); function enqueue_custom_js() { wp_register_script( 'my-custom-js', get_template_directory_uri() . '/js/custom.js', ['jquery'] ); wp_enqueue_script( 'my-custom-js' ); } قمنا بتسجيل الملف الذي نريد صفّه، ولنلاحظ كيف حدّدنا متطلبات الملف ضمن مصفوفة، يعتمد الملف على مكتبة jQuery فقط. ثم قمنا بصفّه باستخدام المعرّف الذي استخدمناه أثناء تسجيل الملف. تكون النتيجة في المتصفح مشابهة للتالي: <script type="text/javascript" src="//cdn.jsdelivr.net/jquery/2.1.3/jquery.min.js?ver=4.2"></script> <script type="text/javascript" src="http://localhost:8000/wp-content/themes/my-theme/js/custom.js?ver=4.2"></script> ونلاحظ أن ووردبريس قامت بصفّ مكتبة jQuery قبل الملف الذي قمنا بتسجيله، وذلك كي يقوم المتصفح بقراءة ملف المكتبة في البداية وتكون متوفرة للاستخدام، وعند قراءة المتصفح للملف الخاص يمكن للملف استخدام مكتبة jQuery بعد أن أصبحت متوفرة. تمرير متغيّرات من PHP للجافاسكريبت ماذا لو أردنا استخدام متغيّرات ما ضمن جافاسكريبت؟ قد يتهيؤ للبعض أن يقوم بعمل طلب AJAX أو وضع ما يريد استخدامه في جافاسكريبت بداخل ملف خارجي. قد تعمل هذه الحلول، لكنها لن تجدي نفعاً إن أردنا تمرير متغيّرات تتبدّل قيمتها باستمرار كأن تكون من قاعدة البيانات مثلاً. توفّر ووردبريس حلّاً سهلاً ومناسباً لهذه المشكلة، وذلك باستخدام دالّة wp_localize_script، اسم الدالّة قد يوحي أنها مخصصة للترجمة، لكن يمكن استخدامها لتمرير جمل الترجمة وأي نوع آخر من المتغيّرات إلى جافاسكريبت. محددات الدالّة هي: - handle$: معرّف لملف جافاسكريبت الذي نريد تمرير المتغيّرات له، يجب أن يكون الملف مسجّلاً قبل استخدام الدالّة. - name$: اسم متغيّر جافاسكريبت الذي سيتم وضع البيانات بداخله. - data$: مصفوفة المتغيّرات التي نريد تمريرها إلى جافاسكريب. مثال: لنقم بتمرير متغيّرين هما سلسلة نصية ورقم إلى ملف جافاسكريبت ذو المحدد my-custom-js: add_action( 'wp_enqueue_scripts', 'enqueue_custom_js' ); function enqueue_custom_js() { wp_register_script( 'my-custom-js', get_template_directory_uri() . '/js/custom.js', ['jquery'] ); $translation_array = array( 'some_string' => 'A String to be using inside JS', 'a_value' => '10' ); wp_localize_script( 'my-custom-js', 'object_name', $translation_array ); wp_enqueue_script( 'my-custom-js' ); } كي نصل إلى المتغيّرات من داخل ملف custom.js، نستخدم شيئاً مشابهاً: alert( object_name.some_string); يجب أن تظهر رسالة تنبيه (Alert) بداخلها النصّ الذي استخدمناه. صفّ الملفات في لوحة التحكم كل ما مرّ معنا من تسجيل وصفّ الملفات هو خاص بواجهة الموقع (Front-end)، أي الذي يراه الزوار. إن أردنا تسجيل وصفّ الملفات في لوحة التحكم (Dashboard) يمكننا ذلك بنفس الطريقة، لكن باستبدال حدث wp_enqueue_scripts بحدث: admin_enqueue_scripts. مثلاً لصفّ مكتبة jQuery Suggest في لوحة التحكم (المكتبة معرّفة مسبقاً في ووردبريس)، نستخدم الأسطر التالية: add_action( 'admin_enqueue_scripts' , 'enqueue_jquery_suggest' ); function enqueue_jquery_suggest() { wp_enqueue_script( 'suggest' ); } ملاحظة: من المناسب وضع شروط معيّنة قبل صفّ الملفات وقصرها على صفحاتٍ معينة، كي لا يتم وضع الملف في كل صفحات لوحة التحكم. الخاتمة تعرّفنا على كيفية صفّ ملفات JavaScript و CSS، هذه الآلية تسهّل كثيراً تنظيم الملفات والتعامل معها، ويجب الحرص على استخدامها بشكل دائم، فهي من المعايير والأشياء المتعارف عليها في تطوير قوالب وإضافات ووردبريس. أرجو أن يكون الشرح واضحاً ومفيداً، إن كان لديكم سؤال أو فكرة فلتشاركونا إياها في التعليقات.
  15. من خلال الأجزاء السابقة من سلسلة SEO للمدونين ألقينا نظرة على كيفية تحسين SEO المدونة، وتحدثنا على عن مجموعة من الطرق المختلفة للقيام بذلك. وفي هذا الجزء سنستعرض عدد من ملحقات ووردبريس التي ستسّهل عليك تهيئة مدونتك لمحركات البحث. ثم سنتحدث عن أهمية أخذ الجمهور في الاعتبار عند كتابة المقالات وعدم كتابتها من أجل روبوتات محركات البحث. ملحقات ووردبريس فيما يلي 4 ملحقات أفضلها وأستخدمها كل يوم: ملحق WordPress SEO من Yoast في الحقيقة، ربما يكون ملحق Yoast من أهم الملحقات على مدونتك بالإضافة إلى تحليلات جوجل. هذا الملحق الصغير هو بالتأكيد هو الأكثر أهمية على مدونتك عندما يتعلق الأمر بتهيئة المدونة لمحركات البحث. أولا، يساعدك هذا الملحق في إنشاء خريطة موقع XML (ولقد تحدثنا عن خريطة الموقع sitemap في الجزء الأول من السلسلة). وكذلك يساعدك على تحسين كل مقال تكتبه لتهيئته لمحركات البحث. وعندنا تنتهي من الكتابة، سيقوم بتقييم المقال بثلاثة تقييمات: الأحمر، الأصفر، أو الأخضر، اعتمادا على جودة ما أنجزته لحد الآن. بعد ذلك بإمكانك اتباع إرشادات الملحق إلى أن تحصل على التقييم الأخضر قبل أن تنشره. إنّ تثبيت هذا الملحق ليس اختياريا، يجب على جميع المدونين تثبيته على مدوناتهم. Quick Cache من الأمور التي يبحث عنها جوجل ويقيّم المواقع على أساسها هي مدى سرعة تحميل الموقع. فإذا كان تحميل الموقع سريعا، سيحصل على تقييم أعلى من حيث SEO. يقوم Quick Cache بأخذ لقطة فورية (يبني ذاكرة مؤقتة) لكل صفحة، مقال، تصنيف، رابط، إلخ. ثم يتم تخزين هذه اللقطات (يُحتفظ بها بشكل مؤقت) لكي يصبح بالإمكان الرجوع إليها لاحقا، وهذا يوفر الوقت عندما يقوم الناس بتحميل موقعك، مما يسرّع عملية التحميل. SEO Friendly Images لقد تحدثنا في الجزء الثالث من هذه السلسلة حول كيفية تحسين الصور التي تدرجها في مقالاتك وتهيئتها لمحركات البحث. من الأمور المهمة التي يجب القيام بها هي ملء حقول "Title" (العنوان) و "Alt Text" (النص البديل). سيقوم هذا الملحق بإنجاز هذه المهمة تلقائيا بالنيابة عنك. YARPP بخلاف الملحقات الثلاثة السابقة، والتي وظيفتها الوحيدة هي زيادة SEO مدونتك، يؤثر ملحق YARPP (اختصارا لـ Yet Another Related Post Plugin) على SEO المدونة بشكل غير مباشر. حيث يقوم باقتراح مقالات ذات صلة بالمقال الذي أنهى القارئ قراءتها للتو. والنتيجة النهائية ستكون استدراج القارئ لقراءة المزيد على المدونة، وبالتالي تقليل معدل الارتداد bounce rate. ومعدل الارتداد المنخفض يعنيSEO أفضل. الآن حان دورك، اذهب وقم بتنزيل هذه المحلقات وثبتها على مدونتك لمساعدتك على تهيئتها لمحركات البحث. لماذا يجب ألا تكتب للروبوتات هذه هي الفقرة الأخيرة من سلسلة SEO للمدونين. وعند هذه المرحلة وددت أن أعرّج على أمر أعتبره مهما جدا؛ الكتابة لروبوتات محركات البحث. أصبحنا نعرف الآن أنّ تهيئة الموقع/المدونة لمحركات البحث هي عبارة عن صيغة. وهي تتمحور حول استراتيجيات الكلمات المفتاحية keywords، والتأكّد من ظهور هذه الكلمات في مواضع محددة وبكميات محددة على مدونتك. المشكلة هي أنّك مدون ولست محرر موقع، وأنّ التلاعب بالإنشاء copy ليظهر بلغة متسقة وطبيعية على الموقع أسهل بكثير منه على المدونات. إنّ الغرض من المدونة هو الكتابة من وجهة نظر المتحدث، نحن نكتب عن هويتنا، وما هي أهدافنا. نحن نكتب وكأننا نتحدث مباشرة إلى جمهورنا. وعندما نكتب بهذه الطريقة، فعلى الأرجح أنّ آخر ما يخطر على بالنا هو الكلمات المفتاحية والتأكد من أنّ كثافتها عالية بما فيه الكفاية. أنت تعبّر عن جميع أفكارك ومشاعرك بواسطة الكتابة، لكن إذا كنت تقوم بكتابة تدويناتك للروبوتات، لن يقرأها الناس العاديون، لأنّهم جميعا يدركون أنّك قمت بكتابتها للروبوتات، وهم ليسوا بروبوتات. يجب أن تكتب لجمهورك أولا، ولتهيئة مدونتك لمحركات البحث ثانيا. أنا عادة ما أجلس للتأمل بفكرة معينة ومن ثم أكتب المقال. ثم أعود وأختار كلمة مفتاحية مناسبة. بعدها أعدّل المقال وفقا لذلك. حيث أتأكد من ظهور الكلمة أو الكلمات المفتاحية في عنوان المقال، وفي الرابط. ثم أبحث لمعرفة فيما إذا كان بإمكاني تضمينها بضع مرات في نص المقال، مع تجنب ظهور المقال بنمط باهت أو مصطنع. في بعض الأحيان تكون مقالاتي أكثر نجاحا من مقالات الآخرين، وفي أحيان أخرى لا يكون المقال مهيأ لمحركات البحث بشكل ممتاز، ولكنني راضية به. إذا، القرار راجع لك، لكن بالنسبة لي، أنا أُعطي الأولوية للتواصل مع جمهوري على التواصل مع روبوتات جوجل. ولا أنكر أنّ تهيئة المدونة لمحركات البحث بشكل مثالي يمكن أن يجذب الناس إليها، لكن إذا كان المحتوى عليها مصطنعا ويبدو كأنّه كُتب آليا، لن يبقى القراء عليها، ولن يعودوا إليها مجددا. نأمل أن تكون المعلومات التي وردت في هذه السلسلة مفيدة لك وأنّها ساعدتك على فهم أساسيات SEO وتعلّم كيفية تهيئة مدونتك لمحركات البحث. ترجمة -وبتصرّف- للمقالين SEO4Bloggers 9: 4 SEO WordPress Plugins و SEO for Bloggers 12: Writing for Robots لصاحبته Rebecca Coleman.
  16. قد تتفاجأ ببعض المشاكل في عرض الصور بعد تثبيت شهادة SSL على مدونة ووردبريس. لا تقلق، ما عليك إلا أن تتابع قراءة هذا الموضوع لتتعرف على كيفية حل هذه المشكلة. عند تثبيت شهادة SSL على موقعك، يتغير عنوان موقعك بشكل طفيف، يسبب هذا التغيير حتى وإن كان بسيطا في الإضرار ببعض عناصر موقعك، الأمر الذي ينتج عن الاختلاف بين عنوان URL الذي تمت برمجة الموقع لاستخدامه وعنوان URL القديم الذي تستخدمه بعض عناصر المحتوى كالصور مثلا، أي أنه بعد تثبيت شهادة SSL يتم نقل كل المحتوى إلى عنوان https في حين لا تزال الصور تشير إلى عنوان http. يتجلى الحل إذن في ضرورة تغيير روابط كل الصور واستبدال http بـhttps ، ما يبدو أمرا شاقا للغاية. من حسن الحظ أنك لن تحتاج إلى تغيير روابط كل الصور التي سبق أن رفعتها واحدة تلو الأخرى. تبقى إمكانية التغيير اليدوي في قاعدة البيانات أمرا متاحا كما يمكنك اتباع الطريقة الأسهل والأكثر أمانا من خلال استخدام ملحق. إن واجهتك مشاكل في عمل الصور بعد تحديث موقعك باستخدام عنوان URL آمن جديد، تابع القراءة لتتعرف على كيفية القيام بالتغييرات الضرورية بشكل يدوي في قاعدة البيانات ولتطلع أيضا على الملحقات التي يمكن أن تستخدمها كحل بديل يتميز بالأمان وسرعة الاستخدام. البحث والاستبدال اليدويان باستخدام استعلامات قاعدة البيانات من الممكن القيام بتغيير روابط الصور بشكل يدوي في قاعدة البيانات. حتى نكون أكثر وضوحا: تجدر الإشارة إلى مدى سهولة ارتكابك للأخطاء أثناء القيام بذلك والإضرار بموقعك. سنتطرق لطريقة الاستبدال اليدوي لنشمل جميع الطُرق المُمكنة فقط رغم المخاطر التي ترافق القيام بالعملية. نظرًا لاحتمال ارتكابك لأخطاء أنصح باستعمال ملحق موثوق لتجنّب أيّة مشاكل قد تنتج عن التّعديل اليدوي. يعتبر عمل نسخة احتياطية (backup) لموقعك قبل القيام بأي تغيير كتعديل روابط الصور أمرا جيدا. يمكنك الإطلاع على المقال يفية نقل مواقع ووردبريس بسهولة باستخدام Snapshot في أكاديمية حسوب. بناء على ما سبق، إن وجدت نفسك في حالة نادرة تتطلب منك البحث في قاعدة البيانات لإيجاد روابط بعض الصور المعطلة، يمكنك القيام بذلك من خلال البحث في قاعدة البيانات بالطّريقة التّالية: سجل دخولك إلى phpMyAdmin، اضغط على قاعدة بيانات موقعك المدرجة في القائمة على اليسار ثم اضغط على تبويب Query. في استعلام SQL في خانة قاعدة البيانات أسفل الصفحة، أدخل الاستعلام التالي، ثم اضغط على GO: UPDATE wp_posts SET `post_content` = REPLACE (`post_content`, 'src="http://www.your-site.com', 'src="https://www.your-site.com'); تأكد من تحديث www.your-site.com إلى اسم نطاق موقعك الصحيح، ثم قم بتغيير البادئة النصية للجدول wp الخاصة ب wp_posts إذا لم تكن تستخدم البادئة الافتراضية وسبق لك أن قمت بتغييرها سابقا. إن كنت تستخدم نسخة ووردبريس متعددة المواقع ، تأكد من استخدام هذا الاستعلام لاحقا إن أردت أن تحدث الصور: UPDATE wp_2_posts SET `post_content` = REPLACE (`post_content`, 'src="http://www.your-site.com', 'src="https://www.your-site.com'); قم بتغيير 2 المتواجدة في wp_2_posts ليوافق رقم التعريف (ID) الصحيح لموقعك عند مطابقته مع مواقعك الفرعية، يجب عليك أن تستخدم هذا الاستعلام لكل المواقع في شبكتك. من المحتمل أن لا يكون ذلك ضروريا دائما، لكن إن كانت شبكتك معدة لاستخدام المجلدات الفرعية (sub-directories) ولم تكن مواقعك مجهزة لاستخدام نطاقات مختلفة قد تجد نفسك أمام ضرورة تغيير روابط صورك. يجب أن تستخدم الاستعلام أسفله لتحديث GUID الخاص بالصور المدرجة كمرفقات (attachments): UPDATE wp_posts SET `guid` = REPLACE (`guid`, 'http://www.your-site.com', 'https://www.your-site.com') WHERE post_type = 'attachment'; على غرار المثال الأول، يجب تغيير النطاق برابط URL الحالي وتغيير table prefix إن لم تكن تستخدم الإعداد الافتراضي. من المحتمل أن تحتاج استخدام هذا الاستعلام بالنسبة لكل المواقع على شبكتك: UPDATE wp_2_posts SET `guid` = REPLACE (`guid`, 'http://www.your-site.com', 'https://www.your-site.com') WHERE post_type = 'attachment'; لا تنس تغيير 2 المتواجدة في wp_2_posts برقم التعريف (ID number) الخاص بالمواقع في شبكتك. بعد القيام بما أسلفنا الذكر، من المفترض أن يتم تحديث كل الصور لتستخدم العنوان URL الجديد الذي (الذي يستخدم https)، إن لم ينجح الأمر في المرة الأولى كرر المحاولة فقد يكون ذلك مجديا. يساعد عدم استخدام كل الاستعلامات دفعة واحدة بل كل استعلام على حدة في نجاح هذه الطريقة. البحث عن روابط الصور واستبدالها باستخدام الملحقات يعتبر البحث عن روابط كل الصور واستبدالها باستخدام ملحق ما أكثر سهولة من القيام بذلك يدويا وأقل عرضة لارتكاب خطأ يؤدي إلى إيقاف موقعك. رغم ذلك، يبقى من المحتمل أن ترتكب خطأ ما، لذا يجب عليك أن تتأكد مرتين من كل ما تقوم بكتابته. يتم تحديث كل الملحقات التي سنتطرق لها بشكل تلقائي، لا تقلق فلن تستخدم ملحقا سرعان ما سيتجاوزه الزمن. في حين لا تتمتع كل هذه الملحقات بإمكانية العمل على المواقع المتعددة (Multisite) فإنها تفي بالغرض عند تفعيلها على كل موقع على حدة. بغض النظر عن أي هذه الخيارات ستقرر استخدامه نؤكد لك أنها كلها ذات جودة عالية كفيلة بإتمام العمل على أكمل وجه. Better Search Replace يتميز ملحق Better Search Replace على وجه الخصوص بتوفره على خاصية دعم المواقع المتعددة (Multisite)، فضلا عن بساطة تصميمه، يتوفر هذا الملحق على عدد محدود من الخصائص والإعدادات الضرورية التي لا يحتاج جُلُّ المستخدمين غيرَها. من أجل تثبيت هذا الملحق ببساطة، ما عليك إلا أن تتوفر على نسخة على ووردبريس منصبة، تعتبر إمكانية القيام بمعاينة تجريبية لترى أي الجداول تتأثر بالخيارات التي تحددها قبل تطبيقها فعليا من أفضل خاصيات Better Search Replace، تضمن لك هذه الخاصية احتماليةً أقل لاقتراف أي خطأ، ما يجعل منها أداة قَيِّمَةً للغاية. Search and Replace فضلا عن استبدال روابط الصور على موقعك، يمكن لملحق Search and Replace أن يقوم بالكثير من الأمور الأخرى، كتغيير عنوان URL ونطاق الموقع، عمل نسخة احتياطية لقاعدة بياناتك واستعادتها، إضافة إلى تغيير القيمة الافتراضية wp في table prefixes. يستطيع هذا الملحق القيام بمحاكاة للتغييرات التي تقترحها قبل تطبيقها فعليا، يكون ارتكاب الخطأ أقل احتمالا عند توافر إمكانية معاينة نتائج التغييرات دون القلق حول تطبيقها ثم إلغائها. يتطلب هذا الملحق استخدام نسخة 5.4 أو أحدث من PHP، يتم تثبيت Search and Replace بنفس سهولة أي ملحق آخر دون أي خطوات إضافية كما يتضمن أيضا دعم المواقع المتعددة (Multisite). WP Migrate DB يُستخدم WP Migrate DB عادة لتهجير (migration) المواقع، لكن يمكنك استخدامه أيضا للبحث عن الروابط القديمة لصورك وتغييرها، يتميز هذا الملحق بقدرته على تهجير موقع مطور محليا (locally developed) إلى استضافة مباشرة (live setup). يتميز هذا الملحق بسهولة الاستخدام فضلا عن عدم اشتراط أي متطلبات للتشغيل، رغم عدم أخذ الكثيرين لهذا الملحق بعين الاعتبار من أجل استبدال روابط الصور فإنه يبقى الخيار الأول للعديد من مستخدمي ووردبريس. خلاصة قد تسبب الصور بعض التعقيدات عند إضافة شهادة SSL إلى موقعك، حتى بعد تحديث عنوان URL الخاص بموقعك فإن الصور تبقى معطلة. يبقى الحل الوحيد هو قيامك بتحديث روابط الصور بنفسك ما يصبح عملية سهلة باستخدام أحد الملحقات المقدمة في هذا الموضوع. هل تمكنت من تغيير روابط صورك بنجاح؟ أي الملحقات استخدمت أو أيها تفضل؟ هل تفضل ملحقا آخر غير تلك التي أدرجنا في هذا الموضوع؟ تفضل بمشاركتنا تجربتك في التعليقات أسفله. ترجمة -وبتصرف- للمقال: Replacing Image Links in WordPress After Installing an SSL Certificate لكاتبته: JENNI MCKINNON.
  17. إن دمج وسائل التواصل الاجتماعي مع موقعك هو أمر مهم للغاية -خاصة هذه الأيام- فهو سيساعدك على الانتشار والاشتهار سواء كنت تملك مدونة بسيطة أو شركة متعددة الجنسيات. توجد العديد من الملحقات التي ستساعدك على إضافة فيسبوك وتويتر وغيرها إلى موقعك، لكن من السهل أن تضيع بين المئات من الخيارات في قسم ملحقات ووردبريس. فعلى الرغم من وجود العديد من الملحقات المجانية إلا أن أغلبها تُرفع إلى قسم المُلحقات وتُنسى، ونادرا ما تجد ملحقًا يحصل على تحديثات مُستمرّة. في حين أنه لا يمكنك الاعتماد على ملحقات أخرى بسبب بطئ دعمها أو أنها لا تُقدّم مساعدة على الإطلاق. هذا هو السبب الذي يجعل الملحقات المدفوعة خيارًا موثوقًا لك ولمشروعك، فإن دعم المطورين والشركات عند الدفع للملحقات سيفعّل المميزات والخيارات والخدمات التي لا يمكنك الحصول عليها مجانا. إليك قائمة بـ 10 ملحقات مدفوعة الأجر ستمنحك دفعة قوية لنشر موقعك على مواقع التواصل الاجتماعي، وتعمل هذه الملحقات على النسخة المنفردة من ووردبريس أو النسخة متعددة المواقع من ووردبريس على حدٍ سواء. Social Marketing رابط تحميل الملحق يسمح لك هذا الملحق بإنشاء إعلان لموقعك مع عرض يظهر لزوارك عند نشرهم لموقعك، ويتميز هذا الملحق بسهولة إعداده وإنشاء الإعلان بطريقة مشابهة للتعامل مع التدوينات (post). عندما تفعّل الملحق، سيتم توجيهك مباشرة إلى صفحة الملحق في لوحة التحكم (dashboard) ويجب عليك إنهاء ثلاثة خطوات من الإعدادات حتى تتمكن من وضع الإعلان في موقعك، وهذه الإعدادات واضحة للغاية وسترى نتائج رائعة بعد أن تقوم ببضعة تعديلات فقط. يمكنك أيضا الاختيار بين قوالب جاهزة أو إنشاء قالب خاص بك والذي يمكنك تكييفه بسهولة مع احتياجاتك. Floating Social رابط تحميل الملحق يضع هذا الملحق أزرار مواقع التواصل الاجتماعي قابلة للتمرير scrollable على صفحتك أو تدوينتك في المكان الذي تختاره، وستبقى الأزرار ظاهرة للزوار عند تَنقُلِهم في صفحتك. لا توجد إعدادات كثيرة، عند الانتهاء من اختيار لون الخلفية ومواقع التواصل الاجتماعي التي تريد أن تضيفها وبعض الإعدادات الأخرى فستكون جاهزة للعمل. على الرغم من أن الإعدادات واضحة للغاية، إلا أنه توجد إعدادات متقدمة تتضمن اختيار Z index وإضافة شيفرات CSS مخصصة. ستجد أن أزرار التواصل الاجتماعي ستتحرك بسلاسة وستظهر بشكل جيد أيضا. Slide In رابط تحميل الملحق يعرض ملحق Slide In نافذة منبثقة مع نص مخصص على جانب الصفحة يحتوي على تدوينات ذات صلة بالتّدوينة الحالية أو نموذجًا للاشتراك في قائمتك البريدية على MailChimp. يمكنك وضع أزرار مواقع التواصل الاجتماعي في الأسفل أو يمكنك إنشاء عرض خاص ووضع هذه الأزرار حتى يتمكن الزوار من مشاركته على حساباتهم على مواقع التواصل الإجتماعي. إعدادات هذا الملحق بسيطة ويتم إنشاء محتوى النافذة المنبثقة عن طريق محرر مشابه لمحرر نشر التدوينات، ويوجد رابط في الإعدادات سيُمكنُك من معاينة النافذة المنبثقة قبل إضافتها إلى موقعك. Ultimate Facebook رابط تحميل الملحق سُمي هذا الملحق بهذا الاسم لما يوفره من خيارات التكامل مع فيسبوك، فأيًا كان ما تريده سواء كان إضافة زر الإعجاب أو النشر أو تعليقات فيسبوك أو السماح للمستخدمين بتسجيل دخولهم عن طريق حساب فيسبوك، فإن Ultimate Facebook يوفر كل ذلك. سيتمكن زوارك من التفاعل مع موقعك بسهولة أكبر ومن دون تسجيل حساب جديد في موقعك، وستتمكن من تعزيز تجربة المستخدم وكل ذلك موجود في ملحق واحد. يمكن أن تكون الإعدادات صعبة في البداية لأنه يجب عليك إعداد تطبيق فيسبوك، لكن الخطوات مشروحة بشكل جيّد لذلك سيكون من السهل اتباعها، وإذا واجهت أية مشكلة فستحصل على مساعدة من فريق الدعم، وعند الانتهاء من إعداد التطبيق، ستكون بقية الإعدادات سهلة. Pay with a Like رابط تحميل الملحق يسمح لك Pay with a Like بإخفاء المحتوى في موقعك إلى حين أن يقوم زائرك يإعجاب أو بنشر مشاركتك وبذلك سيزداد عدد زوار موقعك إذا أحسنت استخدام الملحق. عندما قمتُ بإعداد هذا الملحق وفعّلتُه على مشاركاتي عن طريق الصدفة، لاحظتُ ارتفاعًا كبيرًا في أعداد زوار موقعي، ولقد عمل بشكل أفضل عندما أظهرت بعض التفاصيل في مشاركتي وتركت الجزء الأكبر من الموضوع الرئيسي مخفيًِا حتى يتم الإعجاب like أو يتم نشر المشاركة. يمكنك أيضا استخدامه للتسويق لعروضك المجانية ككتاب إلكتروني أو سلسلة فيديوهات، ويتميز هذا الملحق بسهولة إعداده، فستنتهي من ذلك في رمشة عين. + Comments رابط تحميل الملحق لن تزعجك التعليقات غير المرغوب بها عند توفيرك لخيار التّعليق باستخدام حسابات شبكات التواصل الاجتماعي، وهذا ما يفعله ملحق Comments + وسيزيد بذلك الألفة لزوارك. يمكنك أيضا اختيار نشر التعليقات على حسابات الزوار التي قاموا بتسجيل دخولهم بها لجذب مزيد من الناس إلى موقعك، وإذا كان تعجبك ميزة تعليقات ووردبريس الافتراضية لكنك تريد إضافة آلية الشبكات الاجتماعية فهذا الملحق يفعل ذلك أيضا. يمكن أن تكون الإعدادات صعبة قليلا لأنك ستحتاج إلى إعداد تطبيقات على مواقع شبكات الاجتماعية التي اخترتها لكن صفحة الإعدادات ترشدك من بشكل واضح، وإذا واجهتك مشكلة، يمكنك الاستعانة بفريق الدعم للمساعدة. The Google+ Plugin رابط تحميل الملحق يسمح لك ملحق +Google بإضافة أزرار المشاركة إلى تدويناتك (posts) وصفحاتك كما يسمح لك في نفس الوقت بتتبعها عن طريق استخدام خدمة Google Analytics ويمكنك اختيار تجاوز الإعدادات العامة (global) للمشاركات ووضع إعدادات خاصة لكل منشور. يمكنك أيضا النشر في موقعك عن طريق Google+، فتوجد شيفرات قصيرة shortcode ستساعدك على اختيار نمط مشاركات +Google وإضافة أزرار 1+ حسب حاجتك. بمجرد أن تتمكن من إعداد مشروع جوجل للحصول على مفتاح API، سيكون من السهل إنهاء إعداد هذا الملحق، فالإرشادات متوفرة بشكل مُباشر على صفحة الإعدادات، وإذا واجهت أية مشكلة فسيساعدك فريق الدعم. YouTube Featured Video رابط تحميل الملحق يساعدك هذا الملحق على عرض فيديوهات يوتيوب في أي مكان في موقعك مثل الشريط الجانبي، ويمكنك أيضا اختيار كيفية تشغيل الفيديوهات بما في ذلك نافذة منبثقة أنيقة عند النقر على الفيديو. هذه طريقة رائعة لإحياء الاهتمام بفيديوهاتك القديمة أو الترويج لفيديوهاتك الجديدة، ويمكنك أيضا إظهار الفيديوهات ذات الصّلة بناءا على محتوى الصفحة أو المشاركة وهذا سيساعدك على إبقاء الزوار في موقعك لفترة أطول. الإعدادات والخيارات بسيطة وواضحة للغاية، فيمكنك بسهولة تشغيل الفيديوهات المميزة على موقعك في بضعة دقائق. Comment Form Text رابط تحميل الملحق يسمح لك هذا الملحق بإضافة محتويات إلى منطقة التعليقات، فباستخدام بضعة أسطر برمجية، يمكنك إضافة أي شيء من الإعلانات إلى أزرار مواقع التواصل الاجتماعي. هذا الملحق مرن (flexible) يسمح لك بالإبداع حسب قدراتك البرمجية. عملية التثبيت أطول قليلا من الملحقات الأخرى، وعلى الرغم من ذلك، هنالك إرشادات ستساعدك على تثبيت الملحق، وإذا واجهة أية مشاكل، يمكنك التواصل مع فريق الدعم. + Google Analytics رابط تحميل الملحق يسمح لك هذا الملحق بالتحقق من إحصائيات موقعك من لوحة التحكم الخاصة بالمدير مباشرة ولن تضطر إلى الدخول إلى حسابك على Google Analytics مرّة أخرى. وستتمكن من رؤية معلومات تفصيلية لموقعك أو لشبكتك التي تتكون من عدة مواقع. إن عملية تثبيت وإعداد هذا الملحق سهلة للغاية، وستتمكن من الوصول إلى إحصائيات ضخمة حول الزوار على الفور. الخاتمة هذه الملحقات التّجارية ستساعدك على تحقيق أكبر انتشار لموقعك على مواقع التواصل الاجتماعي، استخدم واحدة منها أو أكثر حسب حاجتك. يوجد العديد من الأسباب لدمج مواقع التواصل الاجتماعي مع موقعك، لكن ما هي أسبابك؟ شاركنا تجربتك وانضم إلينا في المحادثة في التعليقات أسفل المقال. ترجمة -وبتصرف- للمقال: 10 Premium WordPress Plugins for Maximizing Your Site’s Social Sharing لصاحبته Jenni McKinnon.
  18. تعتبر خدمة IFTTT الطريقة المثلى والأكثر سهولة لنشر الصور من Instagram على موقع ووردبريس دون الحاجة إلى استخدام أي ملحق. يوفر موقع Instagram في كل منشور كودا مضمنا (embed code) يمكن استخدامه بغرض نشر إحدى الصور منه على موقع ووردبريس، ما عليك إلا أن تضغط على النقاط الثلاث في الزاوية اليمنى في الأسفل من أجل نسخ ولصق الكود. تعتبر هذه طريقة فعالة إن كنت تريد مشاركة محتوى Instagram من صور ومقاطع فيديو على موقع ووردبريس في بعض الأحيان فقط، أما إن كنت تريد القيام بذلك بشكل دوري وتلقائي فعليك باستخدام أداة IFTTT. توفر هذه الخدمة إمكانية اختيار الصور ومقاطع الفيديو التي سيتم نشرها على موقع ووردبريس من خلال استخدام وسم (Hashtag). إليك فيما يلي تفاصيل كيفية إعداد خدمة IFTTT. الخطوات الأولى للبدء باستخدام IFTTT تسمح خدمة IFTTT للمستخدمين بربط حساباتهم الشخصية بتطبيقات ويب معينة وتوليد إجراءات تلقائية في تطبيق ما بمجرد تحفيز تطبيق آخر. مثلا، عند نشر صورة على تطبيق Instagram (المحفِّز the trigger )، يتم نشر تدوينة على ووردبريس تحتوي على هذه الصورة (الإجراء the action). للحصول على حساب IFTTT مجانا وبكل سهولة، توجه إلى الموقع الرسمي: IFTTT.com، اضغط على الزر الأزرق Sign Up في الزاوية العليا اليمنى، أدخل عنوان بريدك الإلكتروني ثم اختر كلمة سرية. بمجرد تسجيل الدخول إلى حسابك، عليك بربط كل من حسابي Instagram و WordPress الخاصين بك مع خدمة IFTTT، تسمى الحسابات التي يتم ربطها: "قنوات (channels)". اضغط على Channels في القائمة المتواجدة في الأعلى، يمكنك البدء بكتابة "Instagram" في حقل البحث، أو تصفح كل التطبيقات للعثور عليه. اضغط على أيقونة Instagram ثم على الزر الأزرق Connect ليتم ربط حسابك بخدمة IFTTT. اضغط على الزر الأزرق الكبير لنلق الآن نظرة على بعض الطرق العديدة لنشر محتوى Instagram على ووردبريس، تتضمن أولى هذه الطرق نشر كل الصور والفيديوهات الجديدة مباشرة على موقع ووردبريس. نشر كل منشورات Instagram الجديدة على ووردبريس على IFTTT يُطلق وصف Trigger "محفّز" على الخدمة/الموقع الذي يتسبب في القيام بعملية ما. يسمى استخدام محفِّز ما trigger على IFTTT: "وصفة (recipe)". يمكنك إنشاء وصفاتك الخاصة إن أردت ذلك، ما سنتطرق إليه بشكل مقتضب في نهاية هذا الدرس، من الحري بك أيضا أن تأخذ بعين الاعتبار الاستفادة من مجموعة كبيرة من الوصفات المتوفرة والتي أنشأها مستخدمون آخرون ليستخدمها غيرهم. اضغط على Browse في القائمة المتواجدة في الأعلى للبحث عن وصفات محددة أو فقط ابحث في الوصفات الموصى بها (recommended). سنستعمل الوصفة الشهيرة التالية: Instagram to Blog من أجل نشر كل الصور والفيديوهات من Instagram على ووردبريس. اضغط على Connect، سيتم أخذك إلى صفحة جديدة تتضمن بعض الحقول المخصصة، بالنسبة لهذه الوصفة بالتحديد يكون عنوان منشور ووردبريس هو وصف المنشور على Instagram، يمكنك حذف ذلك أو تغييره إلى ما تريد. يمكنك على سبيل المثال أن تقوم بتغيير مكان {{caption}} ليتم إدماج وصف إنستاجرام في حقل وصف ووردبريس (WordPress caption) عوض العنوان. لتغيير أي عنصر، عليك بالضغط على الخانة والبحث عن أيقونة المكونات الزرقاء (blue ingredients icon) والتي تسمح لك باختيار بعض مكونات Instagram التي يمكنك تخصيصها. بمجرد ربط حسابي Instagram و WordPress الخاصين بك، يمكنك إضافة العناوين، الوسوم، التصنيفات إضافة إلى بعض التفاصيل الأخرى. يمكنك أن تقوم بالنزول إلى الأسفل لإدخال التصنيفات والوسوم الخاصة بمنشورات ووردبريس المأخوذة من Instagram، تستطيع أيضا أن تختار أن يتم النشر في الحال، يتم الحفظ في المسودة أو النشر بشكل خاص. اضغط على Add عندما تنتهي. يمكن الولوج إلى الوصفة في أي وقت من خلال الضغط على My Recipes في القائمة العلوية، كما يمكنك التعديل عليها، إلقاء نظرة على سجلها، تفحصها للتأكد من عملها بسلاسة أو حتى إيقافها دون حذفها بشمل دائم. الآن، كلما قمت بنشر صورة أو فيديو جديد على Instagram، سيظهر في موقع ووردبريس خلال بضع دقائق (بعد أخذ الوصفة الوقت الكافي للبحث عن المنشورات)، إضافة إلى ظهور المعلومات في الخانات التي قمت بتخصيصها. استخدام الوسوم (Tags) لنشر منشورات محددة إن أردت امتلاك تحكم أكثر في محتوى Instagram التي تود نشره على ووردبريس، عليك باستخدام الوصفة التالية: Instagram photos tagged #wp to WordPress. تعمل إضافة الوسم: wp# على تحديد ما يجب أن يتم نشره. ستلاحظ في هذه الوصفة إضافة خانة جديدة: Instagram tag والتي تتضمن وسم "wp" بشكل افتراضي، يمكنك تغيير ذلك إن كنت تريد وسم منشوراتك على Instagram بوسم آخر غير #wp. تسمح لك إضافة الوسوم إلى صورك بنشر صور محددة بشكل تلقائي بمجرد إنهائك تخصيص الحقول وإدخال التغييرات التي تريد، عليك بالضغط على Add لتفعيل الوصفة. عندما تريد أن يتم نشر أحد منشورات Instagram على موقع ووردبريس، ما عليك إلا أن تتذكر استخدام الوسم الذي سبق لك تحديده في الوصفة. تخولك الوصفة التي تحدثنا حولها للتو القيام بنشر صور أو فيديوهات محددة من Instagram على موقع ووردبريس، لكن ماذا إن أردت أن تنشر الصور فقط؟ أو مقاطع الفيديو فقط؟ سنتطرق فيما يلي إلى الوصفتين اللتين يمكنك من خلالهما نشر الصور أو مقاطع الفيديو فقط. نشر الصور أو مقاطع الفيديو فقط على ووردبريس من أجل الاقتصار على نشر الصور دون نشر مقاطع الفيديو (أو العكس) على ووردبريس دون الحاجة إلى إضافة وسم عليك باستخدام الوصفة التالية: New photo by Instagram user, create new WordPress post. قم بتخصيص الحقول كما تشاء ثم اضغط على Add، سيتم نشر الصور الجديدة التي تنشرها على Instagram، في حين لن يتم نشر مقاطع الفيديو. عليك باستخدام الوصفة التالية: Instagram video to WordPress blog ليتم فقط نشر مقاطع الفيديو على موقع ووردبريس واستثناء الصور. إنشاء وصفتك الخاصة لنشر محتوى Instagram على ووردبريس إن كنت تبحث عن حلول سريعة وسهلة الإعداد ننصحك باستخدام الوصفات التي تطرقنا إليها في الفقرات السابقة، أما إن أردت الحصول على ميزة خاصة أو تضمين وظيفة محددة فعليك بإنشاء وصفتك الخاصة، ما يخولك إمكانية اختيار الحقول التي تريد استخدامها. لبدء إنشاء وصفتك الخاصة، اضغط على اسم المستخدم في القائمة العلوية ثم اختر Create من قائمة الخيارات المنسدلة. سيتم أخذك بعد ذلك عبر مختلف مراحل إنشاء وصفتك الخاصة. أطلق العنان لإبداعك في استخدام IFTTT اضغط على رابط كلمة this الزرقاء واختر قناتك المحفِّزة trigger channel (القناة التي ستتسبب في عملية النّشر)، عليك باختيار Instagram للقيام بربط Instagram بووردبريس. ستظهر بعد ذلك شبكة من خيارات المحفِّزات (trigger) التي يمكنك أن تختار منها. تتضمن محفِّزات Instagram ما يلي: الصور الجديدة التي تنشرها أنت الصور الجديدة التي تنشرها مع إرفاق وسم (hashtag) معين الصور الجديدة التي تنشرها من منطقة معينة إعجابك بصورة ما الصور الجديدة التي ينشرها مستخدم معين الصور الجديدة التي ينشرها أحد المستخدمين الذين يتشاركون استضافات عمومية في منطقة معينة الصور الجديدة التي ينشرها أي مستخدم مع استخدام وسم معين مقاطع الفيديو الجديدة التي تنشرها أنت مقاطع الفيديو الجديدة التي تنشرها أنت باستخدام وسم معين إعجابك بمقطع فيديو مقاطع الفيديو الجديدة التي ينشرها مستخدم معين مقاطع الفيديو الجديدة التي ينشرها أي مستخدم آخر باستخدام وسم معين لديك العديد من الخيارات كإمكانية نشر منشورات Instagram تخص مستخدمين آخرين على موقع ووردبريس الخاص بك. لنفترض على سبيل المثال أننا نريد نشر الصور الجديدة التي تنشرها أي شخص في منطقة معينة. للقيام بذلك، اضغط على المربع: New photo by anyone in area، يجب عليك أن تحدد موقعك حتى تتمكن خدمة IFTTT من تزويدك بخريطة المنطقة القريبة منك والتي يمكنك سحبها ووضعها على اليمين. تستطيع استخدام علامات الزائد والناقص لتكبير وتصغير المنطقة التي تود تضمينها. خيارات تحفيز رائعة اضغط على Create Trigger لتمر إلى الخطوة التالية. بعد ذلك، اضغط على رابط كلمة that الزرقاء لتختار قناة الإجراء action channel (القناة التي ستنشر فيها). في هذه الحالة ستختار WordPress. يمكنك أن تختار إنشاء تدوينة ووردبريس عادية أو منشورا خاصا بالصور. اختر ما تشاء لنختر هذه المرة خيار Create a photo post. تستطيع الآن أن تملأ الحقول بالمكونات التي تريد. يتم اقتراح مكونات الحقول الثلاث الأولى بشكل تلقائي، يمكنك حذفها أو تغييرها كما تشاء لجعل وصفتك تعمل بالطريقة التي تريدها تماما. عند الانتهاء من ذلك، اضغط على Create Action. إن اخترت منطقة تتميز بنشر الكثير من الصور ستلاحظ ظهورها على موقع ووردبريس الخاص بك مباشرة بعد أخذ خدمة IFTTT الوقت الكافي للبحث عنها. خلاصة يصبح موقع ووردبريس الخاص بك أكثر جمالية عند عرض منشورات Instagram عليه، يمكن لذلك أن يساعد أيضا في جلب المزيد من المتابعين. تستطيع الاقتصار على القيام بذلك بشكل يدوي من خلال تضمين كود الصورة أو مقطع الفيديو في ووردبريس عندما تحتاج ذلك، تذكر دائما أن جعل هذه الإجراءات البسيطة تتم بتلقائية يوفر عليك الكثير من الوقت والجهد، ما إن تجرب القيام بذلك حتى تبدأ في التساؤل عن سبب عدم اتباعك هذا المنهج سابقا. هل تستخدم أي أدوات مثل IFTTT أو ملحقات معينة لإدماج Instagram مع موقع ووردبريس؟ إن كان الأمر كذلك، أي هذه الخيارات تفضل؟ شاركنا رأيك في التعليقات أسفله. ترجمة -وبتصرف- للمقال: How to Share Your Instagram Photos on Your WordPress Site لكاتبه: TOM EWER.
  19. إحدى أبسط الطرق لزيادة حماية موقعك هي عن طريق اختيار اسم مخصص لحساب مدير ووردبريس (admin/super admin). ففي هذه الحالة سيواجه القراصنة بعض الصعوبات في الوصول إلى حسابك عن طريق صفحة wp-login.php لأنه يجب عليهم تخمين اسم المستخدم، وهذا سيخلق خطوة إضافية لأنهم لن يقتصروا على تخمين كلمة المرور فقط. ماذا لو لم تغيّر اسم مستخدم مدير موقعك عند إنشائك لموقعك أو شبكتك؟ في هذا الدرس سنريك كيف تغيّر اسم المستخدم سواء ثبّتت ووردبريس بشكل منفرد أو متعدد عن طريق تغيير بسيط في قاعدة بياناتك. إيجاد اسم قاعدة بياناتك بما أننا في حاجة إلى القيام ببعض التغييرات في قاعدة بياناتك، ستحتاج إلى الحصول على اسمها أوّلًا، يمكنك فعل ذلك بالتحقق من ملف wp-config.php في جذر ملفات ووردبريس. في cPanel، اختر زر File Manager تحت قسم Files، فإذا ظهرت نافذة File Manager Directory Selection المنبثقة، اختر خيار Web Root أو Document Root لموقعك من قائمة الخيارات. اختر ملف wp-config.php وانقر على زر Edit في أعلى الصفحة، ابحث عن شيفرة برمجية مشابه لهذه: // ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', 'your_db'); /** MySQL database username */ define('DB_USER', 'yourusername'); /** MySQL database password */ define('DB_PASSWORD', 'this-is-your-password'); /** MySQL hostname */ define('DB_HOST', 'localhost'); /** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8'); سيظهر اسم قاعدة البيانات في السطر الثالث في مكان your_db. في cPanel، انقر على زر phpMyAdmin تحت Databases في الصفحة الرئيسية، ثم اختر قاعدة بياناتك من القائمة على اليسار ثم حدد جدول wp_users. انقر عليه وابحث عن اسم مستخدم المدير (admin) في القائمة. انقر على زر Edit لإضافة القيم إلى خيارات الجدول، غيّر اسم المستخدم (استبدله بالاسم الجديد) في جميع الحقول التي تعرض الاسم القديم. على أقل تقدير ستحتاج إلى تعديل حقل user_login لتغيير اسم المستخدم، وإذا أردت تغيير كيفية عرض اسم المستخدم على الواجهة الأمامية لموقعك فغيّر حقل display_name. يحتوي حقل user_nicename على الاسم الذي سيظهر في الرابط في أماكن مثل صفحة أرشفة الكاتب، يجب أن لا يحتوي ما ستكتبه هنا على فراغات وسيكون في الغالب نفس اسم المستخدم الذي تسجل دخولك به، لكن في حالات التي لا يبدو فيها الاسم سهل القراءة مثل "HeartPrintedUnderpants23"، يمكنك اختيار اسم مختلف للظهور في الروابط. حالما تنتهي، احفظ التغييرات التي قمت بها. في أسفل خيارات الجدول، سترى مجموعة من صناديق القوائم المنسدلة، اختر Save في الأول و Go back to previous page في الثاني ثم انقر على Go لحفظ تغييراتك. بعد أن تنتهي من هذه التغييرات ستكون قد غيّرت اسم مستخدمك ويمكنك استخدامه لتسجيل دخولك، أما لو كنت تستخدم مجموعة من المواقع، فتوجد خطوات إضافية أخرى تحتاج إلى إنهائها. استبدال اسم مدير النظام على Wordpress Multisite لتغيير مستخدم المدير (super admin) لشبكتك، أنهِ أولا الخطوات السابقة، وعندما تنتهي منها عُد إلى قائمة جداول قاعدة البيانات وابحث عن جدول wp_sitemeta. انقر عليها لتظهر جميع خيارات الجدول، عندما يتم تحميلها، ابحث عن صف site_admins أسفل عمود meta_key. انقر على زر Edit على يسار ذلك الصف، ثم، غيّر القيم لمستخدم المدير في حقل meta_value. ستحتاج إلى تغيير أمرين: اسم المستخدم ثم قيمة عدد أحرف اسم مستخدمك. a:1:{i:0;s:5:"admin";} في المثال أعلاه، يظهر اسم المستخدم الافتراضي، لذلك يجب عليك أن تغيّر admin والرقم 5 الذي يظهر قبل الاسم والذي يمثل عدد حروف الاسم. سيكون الرقم مختلفًا لو كان اسم المستخدم أطول من 5 أحرف، وقد تختلف meta_value أيضا إذا كنت تمتلك صلاحيات أخرى مرتبطة بحساب المدير، وفي هذه الحالة، ابحث عن نفس القيم في الشيفرة البرمجية. إذا أردت تغيير اسم المستخدم على سبيل المثال إلى"HeartPrintedUnderpants23"، فيجب تغيير القيم لتبدوا كالتالي: a:1:{i:0;s:24:"HeartPrintedUnderpants23";} تم تغيير اسم المستخدم إلى الاسم الجديد كما تم تغيير الرقم 5 إلى 24 ليعكس عدد الأحرف في اسم المستخدم الجديد. إذا أعجبك اسم المستخدم الجديد، انقر على Go في الأسفل لحفظ التغييرات التي قمت بها. الخاتمة إذا اتبعت الخطوات السابقة فستكون قد غيّرت اسم مستخدمك الافتراضي إلى اسم آخر عن طريق عمل بعض التغييرات البسيطة على قاعدة البيانات. وبهذه الطريقة أصبح اختراق موقعك أكثر صعوبة على القراصنة، لكن ليس هذا هو التغيير الوحيد الذي يجب عليك القيام به لزيادة مستوى أمان موقعك. توجد طريقة أخرى لا تتطلب القيام بتغييرات على قاعدة البيانات، فيمكنك إنشاء مستخدم جديد ومن ثم أعطه صلاحيات المدير وفي النهاية احذف حساب المدير الأصلي. لكن انتبه من بعض الملحقات التي تطلب صلاحيات إضافية ولا يمكنك تحديدها عند إنشائك لحساب مدير جديد، لذلك فإن تغيير اسم المستخدم من قاعدة البيانات كما شرحنا في درسنا هذا هو أفضل حل. ما خيارك المفضل لتغيير اسم مستخدم المدير في موقعك؟ وهل جربت تغييره؟ انضم إلى المحادثة وشاركنا خبرتك في التعليقات أسفله. ترجمة -وبتصرف- للمقال: How to Change Your WordPress Admin Username لصاحبه Jenni McKinnon
  20. التصنيفات (categories) والوسوم (tags) هما النوعان الأساسيان من الفئات (taxonomies) التي توفرها ووردبريس لتنظيم المحتوى، لكن كيفية استخدامهما بفعالية هو موضوعٌ شائكٌ لمدراء المواقع. كان هنالك جدلٌ كبيرٌ حول مزايا كلٌ منهما على مر السنين، وحتى المستخدمين الخبراء كانوا يضيعون أوقاتهم بتفصيلات غير ضرورية، خصيصًا عندما يأتي الحديث عن موضوع SEO. سنشرح في هذا الدرس بطريقةٍ مباشرة كيف تستعمل التصنيفات والوسوم بفعالية، مع وضع المحتوى وقابلية الاستخدام في قائمة أولوياتنا. لمحة عن أساسيات التصنيفات والوسوم كانت التصنيفات هي الفئة الوحيدة المتاحة للمستخدمين، ثم أُضيفت الوسوم لاحقًا في الإصدار 2.3؛ ومن المؤكد أنَّك تعاملت معهما بعد ذاك الإصدار مئات المرات. قبل أن ندخل بالتفصيل في كليهما، لنأخذ نظرةً على الأساسيات: مكان الاستخدام: افتراضيًا، يمكن استعمال التصنيفات (categories) والوسوم (tags) في المنشورات (posts) فقط، وليس في الصفحات (pages) الاستخدام: يجب أن يملك كل منشور تصنيفًا واحدًا على الأقل، أما استعمال الوسوم فهو اختياري الهيكلية: يمكن وضع التصنيفات في هيكليةٍ ذات عدِّة مستويات (levels)، أما الوسوم فهي ذات مستوى وحيد ربما أسهل طريقة للتفكير بالاستخدامات المثلى للتصنيفات والوسوم هو أن نأخذ مثالًا ألا وهو "الكتاب". يمكن أن نعتبر أنَّ التصنيفات هي "الفصول" التي تجمع المواضيع المتشابهة، أما الوسوم فهي أشبه بالفهرس. لنأخذ مثالًا أكثر تحديدًا: إذا كان لديك موقعٌ عن الطبخ، فربما تستعمل التصنيفات (categories) لتُجمِّع المأكولات التي تنتمي لنفس الدولة (الطعام الإيطالي، أو الفرنسي، أو الهندي)؛ وقد تود إنشاء تصنيفات فرعية إن شئت. أما على الجانب الآخر، قد ترغب بتحديد المأكولات التي تستعمل مكونات معيّنة (أي تلك المعلومات التي تتوفر في أكثر من تصنيف)، وستكون الوسوم خيارًا ممتازًا لفعل ذلك. فالضغط على وسم "الطماطم" سيُظهِر لك الوصفات التي تعتمد على الطماطم في جميع أنحاء العالم. إعداد التصنيفات قبل أن نبدأ بإنشاء التصنيفات، من المفيد قضاء بعض الوقت بالتفكير حول هيكليها. ستتوسَّع قائمة التصنيفات مع مرور الزمن، وستصبح التصنيفات الفرعية أمرًا ضروريًا، لكن تريد أن تكون الأمور منظمةً هنا. تخيل التصنيفات على أنها فصولٌ في كتابٍ التي عليك أن تبدأ بها، فإن وجدتَ نفسك تبدأ بخمسة عشر تصنيفًا فعليك أن تُعيد التفكير في الأمر. في حين أنك قادرٌ على إضافة تصنيفات جديدة من واجهة تحرير المنشورات، لكن الواجهة الرئيسية لإضافتها هي في: المقالات > التصنيفات التي تُظهِر قائمةً بالتصنيفات الموجودة حاليًا مع عدد المقالات المُصنَّفة تحتها، وتمنحك طريقةً سهلةً لإضافة تصنيفات جديدة. لنشرح باختصار الخيارات الظاهرة في الصورة عند إنشاء التصنيف: الاسم (Name): هو ما ستراه في موقعك اعتمادًا على القالب (theme) الذي تستعمله، اختر أسماءً واضحةً والتي تُفهَم بسهولة من قِبل مستخدميك، والتي يمكن أن تحتوي على كلمة مفتاحية (keyword)، وأبق الأسماء مختصرة قد الإمكان. الاسم اللطيف (Slug): هو نسخة من الاسم تلائم روابط URL التي ستظهر في أرشيف التصنيفات وفي روابط منشوراتك إن كنت تستعمل الروابط الدائمة المخصصة (سنشرح كلا الأمرين لاحقًا بالتفصيل)؛ لكن كل ما عليك تذكره الآن هو أن تستعمل الشرطات "-" (dashes) لفصل الكلمات، وأن تحذف كلمات الوصل، وأن تتجنب حشو الكلمات المفتاحية أب (Parent): استخدم هذا الحقل لإضافة تصنيف فرعي، أو أبقه مشيرًا إلى "بدون" (أو None في الواجهة الإنكليزية) لإنشاء تصنيف رئيسي الوصف (Description): ربما يُستعمَل هذا الوصف في أي مكان في الموقع اعتمادًا على القالب الذي تستخدمه، أو ربما تطلب عرض الوصف يدويًا يمكن إسناد أكثر من تصنيف إلى منشورٍ ما، لكن عليك أن تبقي الأمور منظمة جدًا كيلا تثير حيرة المستخدمين. حاول أن يكون العدد الأقصى للتصنيفات لمنشورٍ ما هو تصنيفان (ويُفضَّل أن يكون تصنيفًا وحيدًا)؛ وإذا أردت أن تُشير إلى معلوماتٍ إضافية موجودة في مكانٍ آخر في موقعك، فاستخدم الوسوم. اعتمادًا على طبيعة موقعك، ربما تجد أنَّ التصنيف الافتراضي "غير مُصنَّف" (Uncategorized) ليس مفيدًا جدًا، وربما تود إسناد اسم مثل "أفكار عامة" على سبيل المثال، تستطيع فعل ذلك عبر تعديل التفاصيل في صفحة "التصنيفات" التي شاهدناها سابقًا. التصنيفات والروابط الدائمة كما شرحنا سابقًا في درسنا عن الروابط الدائمة (permalinks)، يمكنك تضمين أسماء التصنيفات في روابط URL عبر استخدام الروابط الدائمة المخصصة. وذلك بزيارة: إعدادات > روابط دائمة في لوحة التحكم ثم تستعمل الوسم البنيوي %category% جزءًا من البنية المُخصَّصة (Custom Structure). هذا مثالٌ عن ذلك: لقد قررنا استخدام التركيبة category/postname (أي اسم التصنيف يليه اسم المنشور) كتركيبة مخصصة للروابط في موقعنا؛ فلو كان عندما منشورٌ اسمه اللطيف (slug) هو my-music-post والاسم اللطيف للتصنيف هو classical، فسيبدو الرابط كما في الصورة الآتية: أبقِ في بالك أنَّ عليك اختيار تركيبة الروابط الدائمة في بدايات عمل الموقع لتجنب الفوضى الناتجة عن إعادة التوجيه. على الرغم من أنك سترى بعضهم يقول أنَّ استعمال التصنيفات في الروابط الدائمة مفيدٌ لتقييم SEO، لكنه ليس عاملًا حاسمًا أبدًا؛ فكر في استخدام التصنيفات في الروابط الدائمة إن رأيت فائدةً لمستخدميك بدلًا من محاولة جذب محركات البحث. ضبط تركيبة التصنيف إن أكملت معنا بزيارة: إعدادات > روابط دائمة في القسم السابق، لوجدت خيارًا تحت عنوان "اختياري" (Optional) للتحكم بما يُسمى "تركيبة التصنيف" (Category base). يعطيك هذا الخيار القدرة على تغيير ما يأتي قبل أسماء التصنيفات في صفحات الأرشيف الخاصة بها، ففي المثال الآتي، قمت بتغيير تركيبة التصنيف إلى "music" التي ستراها قبل اسم التصنيف "classical" في رابط صفحة الأرشيف. قرارك باستخدام تركيبة مخصصة للتصنيفات هو بعيدٌ جدًا لأن يكون القرار الوحيد الذي عليك اتخاذه فيما يتعلق بصفحات أرشيف التصنيفات؛ لكن عليك أيضًا تقرير كيف تستطيع إبراز تلك الصفحات فيما يتعلق بـ SEO أو إذا ما كنت تريد تخصيص محتواها. التعامل مع صفحات أرشيف التصنيفات هنالك الكثير من الكلام حول موضوع صفحات أرشيف التصنيفات على الويب، لكن يمكن اختصار الخيارات المتاحة أمامك إلى خيارين: تريد إبراز صفحات التصنيف الرئيسي: تتحمل عناء تخصيص المحتوى، وتفهرس الصفحة الرئيسية (وليس صفحات الأرشيف الفرعية)، وتسمح بتتبع (follow) الروابط لا تريد إبراز صفحات التصنيف الرئيسي: ستضع noindex و nofollow على جميع صفحات الأرشيف ماذا يعني ما سبق عمليًا؟ إذا كنت تُحضِّر لمعاملة صفحات أرشيف التصنيف الرئيسي عندك كصفحات هبوط (landing pages)، فعليك اتباع الخيار الأول؛ فلنقل أنَّ لديك صفحة أرشيف لتصنيفٍ ما في http://www.example.com/topics/restaurant-seo وأردت أن تكون الصفحة الرئيسية لذاك الموضوع على موقعك. ففي الحالة السابقة، عليك حتمًا أن تُخصِّص مظهر صفحة الأرشيف نفسها، وتجعلها محببة للمستخدمين؛ وهذا يتضمن عرض نص إضافي (مثلًا: وصف التصنيف الذي تحدثنا عنه سابقًا)، أو توفير قوالب مختلفة لمختلف التصنيفات، وعرض مقتبسات من المنشورات بدلًا من عرض المنشورات كلها. وستود أيضًا التحكم في كيفية معاملة محركات البحث لتلك الصفحة؛ ففي هذا المثال، ربما تريد أن تتأكد أنَّ الصفحة الرئيسية الموجودة في ‎/topics/restaurant-seo مُفهرسة وسيتم اتباع جميع الروابط فيها، وعليك أن تتأكد أنَّ الصفحات الفرعية مثل ‎/topics/restaurant-seo/2 غير مفهرسة. وبهذا ستحصل على أفضل نتيجة: إذ أنَّ مستخدميك قادرون على تصفحك ما يشاؤون، وستُبرِز محركات البحث المحتوى الذي تريد. إضافات SEO القوية مثل All in One SEO Pack تمنحك الكثير من الخيارات للتحكم بإعدادات nofollow و noindex، بالإضافة إلى تحكم دقيقة بآلية توليد خريطة الموقع (sitemap). إن لم تكن تريد أن تُخصِّص مجهودًا لصفحات أرشيف التصنيف، فاستعمل خيارَي noindex و nofollow لكي تجعل محتوى موقعك الرئيسي يجذب محركات البحث دون "مساعدة". إدارة الوسوم أولى الأمور التي يجب الإشارة إليها فيما يتعلق بالوسوم هي أنَّك لستَ مُجبرًا على استعمالها في كل منشور، العامل الحاسم الحاكم لاستعمالها هو القيمة التي تظن أنَّها ستقدمها لزوار موقعك، دون أن تحاول "العبث" مع محركات البحث. اتبع الإرشادات الآتية عند إضافة الوسوم إلى المحتوى: قلل عدد الوسوم في كل منشور إلى خمسة فقط: تُربِك الوسوم الكثير الزوار. فكر مليًا في كل وسم على حدة وتأكد أنَّه يشير إلى شيءٍ محدَّدٍ ومفيد. لا تكرر الأسماء في التصنيفات والوسوم: وذلك لتنظيم الموقع، ولتبسيط الأمر على المستخدمين. أبقِ أسماء الوسوم قصيرةً: حاول أن تكون ثلاث كلمات على الأكثر. استعمل نمطًا موحدًا من الأحرف الكبيرة: مثلًا، Hsoub Academy ليست مثل hsoub academy، وهذه المشكلة تخرج عن السيطرة في المواقع الكبيرة، لذلك عليك تحديد نمط معيّن والالتزام به دومًا. تأكد أنَّ الوسوم مستخدمة: فلن تستفيد من وسم مستخدم في منشور وحيد؛ يجب أن يكون هنالك من ثلاثة إلى خمسة منشورات يمكن إضافة الوسم إليها قبل إنشاءه. وكما في التصنيفات، يمكنك إضافة الوسوم عند تحرير المنشورات، أو تستطيع إدارتها مباشرةً عبر الصفحة: المقالات > الوسوم وكما ترى في الصورة السابقة، لديك خياراتٌ مشابهة لخيارات إدارة التصنيفات. أمر صفحات أرشيف الوسوم مشابهٌ لما جاء في صفحات أرشيف التصنيفات، ربما تستعمل إضافةً مثل All in One SEO Pack للتحكم في الفهرسة والتتبع. الخلاصة قد يكون موضوع التصنيفات والوسوم مربكًا لك في البداية، لكنك ستستطيع بعد فترةٍ أن تستعملها بسهولة عبر التفكير المنطقي بوظيفتها. يمكنك استعمال التصنيفات لإضافة هيكلية إلى منشوراتك ولإعطاء المستخدمين فكرة واضحة عن المكان الذي سيعثرون فيه عن محتوى مشابه. استعمل الوسوم للإشارة إلى بعض الأمور المشتركة بين منشوراتٍ مختلفة الموضوع. عندما يأتي الأمر إلى المخاوف من SEO، فلا تُدخِل نفسك في دوامة، اتخذ قرارًا حول تحضيرك لإبراز صفحات الأرشيف ثم عدِّل القوالب، واستعمل الوسوم بحكمة لإضفاء طابع من التناغم. إن كانت لديك أيّة أسئلة أو استفسارات حول التصنيفات والوسوم، فاترك تعليقًا وسنحاول جاهدين مساعدتك. ترجمة -وبتصرّف- للمقال Using Categories and Tags Effectively in WordPress لصاحبه Tom Ewer.
  21. هل قمت من قبل باختيار قالب theme في ووردبريس وبدأت باستخدامه ومن ثم مع الوقت تفاجأت بأنّه غير مناسب للموقع؟ قد لا يكون استبداله في ذلك الوقت أمرًا ممكنًا بعد ما تمّ صرفه من وقت ومال في المشروع، فتجد نفسك عالقًا مع قالب كان من الأفضل لو اخترت واحد آخر عوضًا عنه. إنّ اختيار قالب أمرٌ مهمٌ كاختيار سيّارة، فمن السهل أن تنبهر بجمال وقوّة إحداها وينتهي بك الأمر بسيارة رياضيّة مكشوفة ذات مقعدين بينما ما تحتاجه حقًّا هو سيارة يُعتمد عليها بمقاعد مريحة تكفي لـ 5 أشخاص. لقد وجدت نفسي في هذا المأزق عدّة مرّات من قبل على الأقل، لكنّ التجربة والخطأ علّماني أن أضع نظامًا يعتمد على تحديد متطلبات المشروع وتقييمه ومقارنة القوالب المرشّحة للاختبار قبل أن أتخذ قرارًا. سأشرح الآلية التي أستخدمها عند اختيار قالب وكيف يمكن اعتمادها لزيادة فرص اختيار القالب الأمثل لمشروعك القادم باستخدام ووردبريس. يجب أن تعرف ما الذي تحاول بناءه تجنّب انتقاء قالب قبل أن تحدّد تمامًا ما الذي تحاول بناءه، فبالرغم من أنّ اختيار قالب يُعتبر أمرًا مشوّقًا، ولكنّ التخطيط لمحتوى الموقع هو الجزء الأهم والذي يتطلب أعلى انضباط في عملية بنائه. وحتى يكون موقع الويب مفيدًا، يجب أن نعير الاهتمام إلى اختيار المحتوى أوّلًا، وتحديد الهدف من الموقع، وهيكله العام، والنصوص والعناصر المرئيّة التي سنستخدمها في بنائه، قبل أن نبدأ التفكير باختيار قالب، ويساعد في هذا إنشاء قائمة بجميع ما ستتضمنه صفحات الموقع، وما ستحتويه كل صفحة. كن دقيقًا في التوصيف قدر الإمكان، فعلى سبيل المثال، إن كنت تقوم بإنشاء موقع لأغراض تجارية يحتوي على صفحة تعرض أهمّ موظّفي الشركة، فقد يكون توصيف الصفحة مثلًا: صفحة الموظّفين: الملفات الشخصية لـ 4 موظّفين في الإدارة التنفيذية. كل ملفّ سيتضمن صورة، وصفًا شخصيًّا يتراوح ما بين 125-150 كلمة، وأيقونة أو أكثر لشبكات التواصل الاجتماعي. يمكنك من خلال التوصيف السابق تحديد الميّزات التي ستحتاجها في القالب، ومن ثم عند بحثك عن قالب مناسب، عد لقائمة الميّزات التي قمت بتحديدها واختر القالب التي تدعم معظمها سلفًا، فهي النقطة الأهم في هذه الخطوة، لأنّ إساءة اختيار قالب هو وصفة مضمونة لترهق نفسك عندما تحاول تعديله ليتناسب مع أهدافك التي لم يُصمّم من أجلها أساسًا. إنّ العديد من القوالب المشهورة في فهرس قوالب ووردبريس، كـ Sydney، تعتمد بصورة أساسية على الصور ذات الحجم الكبير وهي مناسبة أكثر لتستخدم كمحفظة أعمال للمصمّمين والوكالات الفنّية، لذا تجنّب اختيار مثل هذه القوالب إن كنت تحاول إنشاء مدوّنة وابحث عن تلك التي صمّمت لتتناسب أكثر مع أغراض التدوين كـ Twenty Sixteen. وقد يُطرح سؤال هنا، هل نستطيع تعديل قالب كـ Sydney ليُصبح مناسبًا للاستخدام في مدوّنة؟ إن هذا ممكن بالطبع لكن ستستغرق الكثير من الوقت والجهد. يجب أن تعلم ما الذي تبحث عنه إنّ ميزانية المشروع والمدة الزمنية المخصصة له لهما الكلمة الفصل في مقدار الوقت الذي تستطيع صرفه في إنشاء الموقع، وهناك 3 فئات للقوالب التي يمكنك أخذها بعين الاعتبار اعتمادًا على متطلبات المشروع وعلى مقدار الوقت الذي يمكنك إمضاؤه بتحسين شكل الموقع النهائي. إن احتجت لبداية نظيفة فيمكنك استخدام قوالب أُطر العمل، كـ Genesis أو Thesis، أو Upfront، فهي منتجات تستطيع استخدامها لبناء أي نوع من المواقع بالاعتماد عليها. ومع بعض التمرّس، ستغدو قادرًا على إنشاء المواقع بسرعة باستخدام قالب إطار العمل المفضّلة لديك. ولكن إن كانت السرعة العامل الأهم، فقد يتوجب عليك تجنّب هذا الأمر والانتقال مباشرة إلى اختيار قالب صُمّم بناءً على إطار العمل الذي تستخدمه لمشروعك، فهناك العديد من القوالب التي تتناسب مع مختلف أنواع المشاريع والتي لا تحتاج إلّا إلى تعديلات قليلة، كالمذكورة سابقًا Sydney أو بناء قالب اعتمادًا على إطار عمل القوالب المُفضّل لديك. أخيرًا، إن لم تكن ترغب ببناء قالب من الصفر باستخدام باستخدام إطار عمل، ولم تتمكن من إيجاد قالب يتناسب تمامًا مع مشروعك، فيمكنك اختيار قالب مصمّم ليكون من السهل التعديل عليه، حيث أنّ هذا الكلام قد ينطبق على القوالب المصمّمة المبنية اعتمادًا على أُطر العمل ولكنه غير صحيح مع القوالب المستقلّة فالبعض منها من السهل تعديله لكنّ الأغلب يصعب معه ذلك دون الوقوع في مشاكل، وسنتناول الحديث عن الطرق التي يمكن اتباعها للتعديل على القوالب في نهاية المقال إن أردت السير في هذا الطريق. تجاهل المحتوى التجريبي عندما ترغب ببناء موقع فإنه لديك مجموعة من المحتويات التي ستستخدمها فيه وستكون مجبرًا على انتقاء الصور، الأشكال، الفيديوهات والنصوص بعناية، حيث سيكون هناك هدف لكل عنصر سيستخدم في الموقع، لكنّ مصمّم القوالب لا يواجه هذه المشكلة فهدفه النهائي هو إغراؤك لاقتناء القالب الخاص به وبالتالي سيعمل على استخدام معظم المزايا المتاحة له ويغرق الموقع بالمحتوى التجريبي demo content ونصوص lorem ipsum والصور الرمزية وما شابه ذلك. لذا وأنت تبحث تأكّد من أن تتجاهل المحتوى المؤقت المستخدم في القالب وركّز على مقدار مناسبتها لمتطلبات مشروعك. انتبه جيدا إلى المزايا التي يقدمها القالب من المهم الانتباه جيّدًا إلى المزايا المقدّمة من القالب (وليس إلى المحتوى التجريبي كما ذكرنا سابقًا)، وبالعودة إلى المثال السابق حول صفحة موظّفي الشركة، ألق نظرة على القالب التي تستعرضه وتأكّد من أنه يُلبّي احتياجك من حيث إنشاء ملفات شخصية بسهولة؟ Zerif Lite هو أحد القوالب الخاصة بـووردبريس والذي يتضمن ميّزة تفيد في هذا الغرض: إنّ بعض أهم عناصر القوالب التي يجب الانتباه إليها تتضمن: شكل قوائم تصفّح الموقع: ستملك عناصر التصفّح درجة من المرونة، لكن تأكّد من أن تصميمها يلبّي احتياجك. فإن احتجت لقوائم كبيرة mega menus فإنشاؤها سيكون أسهل بكثير إن اخترت قالبًا يدعم هذا النوع من القوائم. كيف يتم عرض شعار الشركة: إن كنت تملك شعارًا وعبارة تسويقية فتأكد بأنّهما يتناسبان مع المواقع والأحجام التي تفرضها القالب. تأكّد إن كانت الميّزات مقدّمة من القالب ذاته أو باستخدام مُلحقات plugins: من الأفضل أن تكون الميّزات مقدّمة من إضافات، فحينها ستستطيع المحافظة على معظم المزايا إن قررت تغيير القالب، وبحديثنا عن القوائم الكبيرة mega menus فمن الأفضل أن تستخدم القالب إضافة Max Mega Menu عوضًا عن إدراج الميّزة ضمن تصميم القالب الداخلي. مدى سهولة التعديل على القالب: فهل تفضّل العمل مع محرر مرئي مثل Visual Composer أو محرر Upfront Editor، أو تفضّل كتابة شيفرات CSS يدويًا للتعديل على مظهر الموقع؟ إن كنت تفضّل العمل بطريقة معينة فتأكد من أن القالب تتطابق مع اختيارك، وإحدى الأخطاء التي يجب تجنّبها هي كتابة شيفرات CSS بشكل يدوي في موقع يستخدم محررًا مرئيًّا. احصل على رأي غير منحاز حالما تستقر على مجموعة من القوالب التي تتناسب مع متطلبات مشروعك ومزاياه، فهناك مجموعة من الاختبارات التي تستطيع إجراءها لمقارنة الأداء فيما بينها. إحدى هذه الاختبارات هو إخضاع نسخة تجريبية demo من الموقع لاختبار Pingdom’s Website Speed Test. لا تقلق كثيرًا في البداية حول زمن التنفيذ أو حجم الصفحة إلّا إن ظهرت لك نتائج تنذر بسوء، فزمن التنفيذ يمكن أن يختلف كلّيًا بحسب الاستضافة وطريقة إعدادها والمكان الجغرافي للخادوم، كما يتعلق بالخبء المؤقت (cache) وضغط الصفحات minifying المطبّق على الموقع. إنّ حجم الصفحة للنسخة التجريبية غالبًا ما يكون ناتجًا عن كون النسخة متخمة بالصور والفيديوهات عالية الدقة، لذا فإنّ البيانات الأهم التي يجب الانتباه إليها في هذه المرحلة هي عدد طلبات HTTP التي تظهر والمرتبة النهائية للأداء التي نحصل عليها. إن وجدت بأنّ القالب التي اخترته لا يملك نتائج جيّدة عند تطبيق هذا الاختبار، فاعتبر هذا تحذيرًا بأنّك بحاجة لاختيار إضافة جيّدة للخبء مؤقت وضغط المحتوى كـ Hummingbird عوضًا عن رفض القالب ككل. إنّ أفضل طريقة لاستخدام النتائج أثناء التقييم هو المقارنة فعلى سبيل المثال إن اخترت استخدام Zerif Lite أو OnePress اعتمادًا على النتائج فيمكن منح نقطة إضافية لصالح OnePress على الرغم من أنّ القالبين يملكان نتائج جيّدة متقاربة. ومن الإضافات المناسبة أيضًا للاختبار هي Google PageSpeed Insights، ومرّة أخرى نذكّر بأنّه ليس هناك معيار نتائج معيّن نبحث عنه، حيث يجب اختبار جميع القوالب التي نفضّلها ونأخذ بعين الاعتبار النتائج التي نحصل عليها. يمكن أثناء تنفيذ هذا الاختبار أن نحدّد المشاكل التي تعاني منها القالب التي نختارها في نهاية المطاف ونحاول معالجتها. معاينة الخلفية آخر ما تحتاج للقيام به هو الحصول على بعض المعلومات عمّا سيكون عليه العمل مع القالب، فالعديد منها تسمح بالاطلاع على اللوحة الإدارية، لذا خذ بعض الوقت لإلقاء نظرة وفهم ما سيكون عليه الأمر عندما تعمل معها فإن احتوت على محرّر سحب وإفلات مرئي لعناصر الموقع فخذ بعض الوقت في تجربة ذلك لترى كيف يختلف المظهر الخارجي. أما لو كنت ستقوم بكتابة شيفرات CSS خاصة للتعديل على مظهر القالب فقم باستعراض ملفات CSS التي تستخدمها باستخدام أدوات المطوّر. إن الهدف هو معرفة كم سيكون سهلًا أو صعبًا التعديل على الموقع. هاك بعض الأمور التي تحتاج للتركيز عليها أثناء ذلك: كم عدد أسطر CSS المستخدمة: إنه من غير المستبعد أن تمتلك قالب ما بين مئات لعدة آلاف الأسطر من CSS، وعلى الرغم من أنّها ليست قاعدةً أساسية، فإنّه من الأسهل عادة التعديل يدويًا على شيفرات CSS في القوالب التي تستخدم أقلّ عدد ممكن من قواعد CSS. كم عدد ملفات CSS المستخدمة: معظم القوالب تستخدم قواعد CSS موزّعة على عدّة ملفات، وعلى الرغم من ذلك، فلو أردت القيام بتعديلات يدوية، فكلّما قلّ عدد الملفات كلّما كان ذلك أفضل، فالملفّات الأقل إشارة إلى هيكلة منظّمة أكثر وأسهل للتعديل. كم عدد المرّات التي استخدمت فيها قاعدة !important: رغم أنه من المتوقع نظريًّا أن تقوم معظم القوالب بتجاوز override القواعد الموروثة في CSS بين العناصر عدّة مرات، إلا أنّه في حال وجدت بأن السمة تستخدم هذه القاعدة بضع مئات من المرّات فتوقّع أن يكون التعديل اليدوي عليها أمرًا صعبًا. إن إحدى الطرق التي يمكنك اتباعها لتحديد مدى سهولة التعديل اليدوي على قواعد CSS هي باختيار أحد العناصر الذي ترغب بتعديله ومن ثم تستخدم لوحة المظهر في أدوات المطوّر لتقوم بالتعديل على مظهر العنصر مباشرة وترى مدى سهولة القيام بذلك. الخلاصة تحدّثنا عن العديد من الأمور الواجب مراعاتها عند انتقاء قالب، ولتلخيص ما سبق: نحدّد المحتوى أوّلًا ومن ثم التصميم: ابدأ بتحديد المحتوى وعناصره التي ستستخدمها وسيكون من الأسهل اختيار القالب. حدّد نوع القالب التي تبحث عنه: إطار عمل قوالب، قالب متعدّدة الأغراض للاستخدام كما هو، قالب معدّل. قارن أداء القوالب المرشّحة باستخدام الاختبارات التي ذكرناها. جرّب استخدام المحرّر المرئي المستخدم ضمن القالب أو إطار العمل، أو قم بالاطلاع على قواعد CSS التي تستخدمها القالب إن لم تملك محرّرًا مرئيًّا مدمجًا معها. يجب أن تكون قادرًا الآن على اختيار قالب إطار العمل أو القالب المناسب لمشروعك القادم. كيف تقوم باختيار القوالب لمشاريعك عادة؟ هل هناك معايير أخرى تعتمدها في اختيارها؟ أخبرنا في التعليقات أدناه. ترجمة -وبتصرّف- للمقال How to Pick the Perfect WordPress Theme لصاحبه Jon Penland.
  22. في بداية رحلتك إلى عالم التدوين كنوع من أنواع العمل الحر، تحتاج غالباً إلى الإلمام ببعض النقاط الهامة في هذا المجال، منها البحث عن منصة سهلة لإدارة ونشر المحتوى عبر الشبكة العنكبوتية، وبالطبع فإن معرفتك بمميزات وعيوب منصات التدوين المختلفة ستساعدك في اختيار المنصة الملائمة لك. حالياً تعتبر منصة وورد برس المنصة الأكثر استخداماً في تشغيل المواقع والمدونات حول العالم، لكن ربما يجد الكثير من المدونين في البداية بعض الصعوبة في التعامل معها، لذلك يلجأ الكثير منهم إلى منصة بلوجر الأسهل استخداماً من وجهة نظرهم، لكن سرعان ما يبدأ التفكير حول دقة اختيار المنصة ومدى توافقها مع رغبات المدون. بالتالي نجد تساؤلاً يطفو إلى السطح مع كل بداية جديدة من أحد المدونين ألا وهو بلوجر أم وورد برس: أيهما أستخدم؟ أو أيهما أفضل؟ وباعتقادي الشخصي فإن هذا التساؤل يجب أن يكون على نحو مغاير تماماً لأن أفضلية منصة معينة ليست العامل الأساسي الذي يجب أن ينطلق منه المدون، بل في مدى ملائمة هذه المنصة وتوافقها مع رغبات المدون. وبأي حال، سنحاول من خلال هذا الموضوع مناقشة بعض الفروقات الهامة بين منصة وورد برس ومنصة بلوجر والإجابة على هذا التساؤل، لكن أرجو أن نلتفت إلى النقاط التالية قبل البداية: المقارنة التالية موجهة بشكل أساسي للراغبين باستخدام إحدى المنصتين في مجال التدوين أو ما شابه، وليست مقارنة لما يمكننا فعله باستخدام كل منصة. المقارنة ستكون بين منصة بلوجر و WordPress.org غير المدفوعة هذه المقارنة لا تشبه المقارنات بين فريقي كرة القدم "ريال مدريد" و"برشلونة" أو بين شركتي Apple وSamsung، فهي لا تهدف إلى نسف منصة ما وتمجيد الأخرى، بل هي محاولة عملية لمساعدة القارئ للوصول إلى استخدام منصة معينة وفق معايير محددة. دعونا نبدأ أولاً: الملكيةبلوجر هي منصة نشر محتوى تمتلكها شركة Google العملاقة وبالتالي يمكنك الوثوق بها دون تردد كغيرها من منتجات شركة Google الرائعة، بينما منصة وورد برس هي نظام مفتوح المصدر لإدارة المواقع تمتلكه شركة Automattic ويعود حق ملكية المدونة إلى المدون نفسه. وذلك يعني أنك لست المالك الحقيقي لمدونة بلوجر، فيمكن لشركة Google حذف المدونة الخاصة بك أو إغلاقها مؤقتاً أو نهائياً فيما إذا قمت بمخالفة شروط النشر والاستخدام أو حتى إذا أرادت جوجل ذلك لسبب أو لآخر وحينها لن تكون الشركة مضطرة لإبداء أي تفاصيل حول أسباب الإغلاق. بينما مع مدونة وورد برس ستكون أنت المالك الفعلي للمدونة ويمكنك إغلاقها كيفما تريد، ولا يمكن لجهة معينة إغلاق أو حذف المدونة لسبب أو لآخر حيث ستكون لديك سيطرة كاملة على محتويات وملفات مدونتك من خلال استضافة خاصة. المسألة الثانية المترتبة على موضوع الملكية هي إمكانية بيع المدونة، فمع مدونات بلوجر هناك صعوبة بالغة في بيع المدونة مع عدم حقك أصلاً في بيعها، بينما مع مدونات وورد برس فلك الأحقية الكاملة في بيع المدونة متى شئت وبكل سهولة. الخلاصة: من الواضح أن استخدام وورد برس لديه أفضلية في هذه النقطة، لكن من الإنصاف القول بأن شركة Google لا تلجأ إلى إغلاق المدونة بسبب انتهاك بسيط وهي غير متعسفة إطلاقاً في استخدام هذا الحق. وبالتالي فإن الالتزام بسياسة بلوجر يضمن لك عدم المساس بالمدونة من طرف Google. ثانياً: التصميمالكثير من القوالب المتوفرة لمدونات بلوجر هي قوالب منخفضة الجودة، وحتى في حال حصولك على قالب مميز ستجد أن العديد من المدونات الأخرى تستعمل نفس القالب وبالتالي فإن الحصول على قالب احترافي ومميز لمدونات بلوجر ليس بالأمر السهل، خصوصاً مع وجود عدد قليل جداً من المطورين لمدونات بلوجر. وقد تتجه فعلاً لاختيار أحد المختصين في تطوير قوالب بلوجر وتدفع له مقابل ذلك للحصول على قالب يناسبك، لكنك في الغالب ستُصطدم بالخيارات المحدودة جداً التي تسمح بها منصة بلوجر من حيث التصميم والقالب. أما مدونات وورد برس فتمتلك مجموعة كبيرة جداً من القوالب الرائعة والتصاميم المتنوعة، كما يمكن للمدون الحصول على قوالب احترافية للغاية، ويمكنه وضع تصوره الخاص بالتصميم الذي يرغب به وسيجد الكثير من المطورين المميزين على استعداد لتنفيذ كل ما يريد وعلى أفضل وجه، وبالتالي فمنصة وورد برس تقدم لك خيارات غير محدودة من حيث التصميم والقوالب، وبالتالي لا داعي للقلق إطلاقاً حول مسألة التصميم. الخلاصة: الأفضلية من حيث القوالب والتصميم هي لمدونات وورد برس. ثالثاً: التعامل مع المنصةتتميز مدونات بلوجر بسهولة كاملة في التعامل مع المنصة، وبمجرد امتلاكك لحساب GMail ستكون قادراً على إنشاء مدونة مجانية عبر بلوجر والبدء في نشر المواضيع من خلال لوحة التحكم البسيطة ودون الدخول في أمور برمجية أو فنية. بينما تحتاج مدونات وورد برس إلى معرفة ببعض الأشياء الفنية والبرمجية بشكل مسبق حتى تتمكن من تنصيب المدونة والبدء في نشر المواضيع، وبالتالي قد يجد بعض المدونين صعوبة في التعامل مع وورد برس في البداية. الخلاصة: مدونات بلوجر لها الأفضلية من حيث التعامل وسهولة الاستخدام ولا تتطلب معرفة مسبقة بالأمور الفنية. رابعاً: التحكم في المنصةتوفر مدونات بلوجر خيارات محدودة جداً للتحكم في المنصة وتخصيصها بالطريقة الملائمة للمدون، وبالتالي على المدون العمل وفق ما تُمليه المنصة عليه وليس العكس، فمثلاً هناك خيارات محدودة جداً في التحكم بالتعليقات ونماذج الاتصال داخل المدونة. أيضاً لا تسمح مدونات بلوجر بإضافة محررين ومساهمين آخرين للمدونة، وجود عدد محدود من الصفحات الثابتة، عدم القدرة على التحكم في آلية ظهور المواضيع وغيرها. أما مدونات وورد برس فتمتلك خيارات غير محدودة للتحكم في المنصة وبالطريقة التي تلائم المدون، فيمكن إدراج عدد غير محدود من المساهمين والمحررين داخل المدونة وتخصيص ملفاتهم الشخصية، نظام تحكم مميز في التعليقات ونماذج الاتصال والصفحات الثابتة وآلية ظهور المواضيع، بالإضافة إلى إمكانية استخدام العديد من الإضافات لتوفير المزيد من الخيارات للتحكم في المنصة. الخلاصة: الأفضلية من حيث التحكم في المنصة هي لمدونات وورد برس. خامساً: تحسين الظهور في محركات البحث "SEO"يعتقد الكثير من المدونين بأن استخدام منصة بلوجر يعطيها أفضلية من ناحية SEO وذلك لأنها تابعة لشركة Google وبالتالي ظهور أفضل داخل محرك بحث Google على الأقل، في الواقع هذا الافتراض غير صحيح بالمطلق. دعونا نحتج برأي المهندس في شركة جوجل Matt Cutts، فهو يعمل لدى الشركة المالكة والداعمة لبلوجر بينما تعمل مدونته الشخصية عبر منصة وورد برس. يرى Matt أن كل من المنصتين تعمل بشكل مناسب مع SEO وكل منصة لها إيجابيات وسلبيات، لكن في نفس الوقت فإن منصة وورد برس تعطي خيارات وإمكانية تخصيص أكبر في هذه المسألة. ويضيف Matt بأنه إذا كنت تمتلك محتوى جيد وعددًا معقولًا من الروابط المؤدية لمدونتك وبالتالي زوارًا أكثر، فإن المسألة لن تشكل أي فارق بين استخدام وورد برس أو بلوجر. يمكننا القول بأن مسألة SEO تعتمد في الأساس على المدون نفسه، فكل من وورد برس وبلوجر لا تقدم أي مميزات في هذا الخصوص ابتداءً، وبالتالي على المدون معرفة بعض الاستراتيجيات المتعلقة بالسيو للحصول على ظهور أفضل. لكن يمكن لمستخدمي منصة وورد برس الاستعانة لاحقاً ببعض الإضافات المتعلقة بـ SEO مثل إضافة Yoast والتي توفر العديد من المميزات والاحتياجات المتعلقة بالسيو، وهذا الأمر غير متوفر في مدونات بلوجر. الخلاصة: وورد برس يتيح خيارات أوسع من ناحية تحسين محركات البحث "SEO" من خلال توفير العديد من الإضافات والقدرة على تهيئة المدونة لمحركات البحث بشكل أفضل، لكن في نفس الوقت يجب الالتفات إلى أن جودة المحتوى هي النقطة المركزية في المدونة، بمعنى لو أنك تمتلك محتوى ضعيف وسيء مع أفضل استراتيجية سيو في العالم فلا تتوقع أن تحقق مدونتك أي نجاح حقيقي على صعيد الشبكة العنكبوتية. بينما المحتوى الجيد سواء كان عبر منصة بلوجر أو وورد برس هو المفتاح الحقيقي للنجاح. سادساً: التكاليفتتيح لك منصة بلوجر إنشاء مدونة مجانية بشكل كامل، حيث يتم استضافة المدونة لدى سيرفرات جوجل دون دفع أي مبلغ مقابل ذلك، بالإضافة إلى ذلك ستحصل على 1 جيجابايت لتخزين الصور من خلال خدمة بيكاسا مجاناً ويمكنك زيادتها إلى 15 جيجابايت باستخدام حساب جوجل بلس أو حساب جوجل درايف مجاناً أيضاً، كما تسمح لك جوجل بنشر عدد لا نهائي من المواضيع عبر المدونة والقدرة على إنشاء عدة مدونات عبر حساب واحد، والأهم أن جوجل تتيح لمدونتك حجم تبادل بيانات Bandwidth غير محدود. وبالطبع يمكن دفع بعض التكاليف البسيطة بحسب الرغبة لظهور المدونة بشكل أفضل أهمها اختيار اسم نطاق خاص للمدونة بدلاً عن اسم نطاق فرعي تقدمه بلوجر بشكل افتراضي، بالإضافة إلى إمكانية اختيار قالب مدفوع. أما مع منصة وورد برس فيجب عليك امتلاك استضافة لمدونتك من خلال إحدى الشركات التي توفر خدمات الاستضافة، ويجب عليك حينها تحديد المتطلبات التي تحتاجها مدونتك مثل المساحة التخزينية وحجم تبادل البيانات وبالتالي يمكنك اختيار أنسب العروض التي توفرها شركات الاستضافة المختلفة، وبالطبع ستقوم بدفع مبلغ مادي شهري بحسب خطة الاستضافة التي اخترتها، وكلما ازدادت المتطلبات الخاصة لمدونتك مثل الحاجة لمساحة أكبر أو أصبحت المدونة تستقطب عدد زوار أكبر، كلما ازدادت الحاجة لدفع مبالغ إضافية والانتقال لاستضافة مناسبة أكثر لمتطلبات المدونة. هناك نقطة هامة مرتبطة بمسألة التكاليف وهي أي المنصتين أفضل لتحقيق الدخل من المدونة؟ في الواقع مسألة تحقيق الدخل هي مسألة مرتبطة بجودة المحتوى واختيارك لمجال المدونة بصورة ملائمة بالإضافة إلى اتباع طرق تسويق فعالة لجلب المزيد من الزوار وبالتالي دخل أفضل، وليس لها علاقة باستخدام هذه المنصة أو تلك لكن دعونا ننوه لأمرين، الأول أن خدمة جوجل أدسنس هي إحدى خدمات شركة جوجل وبالتالي فإن ربط مدونة بلوجر بحساب أدسنس يتم بصورة سريعة وتقدم جوجل تسهيلات لقبول المدونات التابعة لها من خلال التكامل بين أدسنس وبلوجر، بينما تحتاج أحياناً مدونات وورد برس لبعض الوقت لاعتمادها عبر جوجل أدسنس. الأمر الثاني يتعلق بمستقبل المدونة، فإذا أردت تحويل المدونة إلى أشبه بالمشروع التجاري وتحقيق دخل أكبر فربما تحتاج حينها لخيارات أكبر لإدارة المدونة وبالتالي ستكون منصة وورد برس خيارك الأفضل. الخلاصة: مدونات بلوجر لها الأفضلية من حيث التكاليف، بينما يجب أن يتوفر لك مبلغ مادي لإنشاء مدونة وورد برس. سابعاً: الأمانباستخدامك لمنصة بلوجر فأنت تقول وداعاً لمشاكل الأمان والحماية الخاصة بالمدونة، فشركة جوجل هي المسؤول المباشر عن المعالجة الأمنية للمدونة وحمايتها من الاختراق، وبالتالي فليس هناك داعي لوضع إضافات أو خدمات أمنية أو الاستعانة بأحد المختصين في هذا المجال. ولغاية الآن تعتبر مدونات بلوجر عصية على الاختراق من قبل القراصنة وربما تعتبر هذه الميزة هي الأقوى من بين كل المميزات الخاصة بمدونات بلوجر. أما عند استخدامك لمدونة وورد برس فستكون أنت المسؤول الأساسي عن توفير الحماية اللازمة للمدونة ومتابعتها في حال حدوث أي خلل أو اختراق. وبالرغم من وجود العديد من الإضافات المتعلقة بالحماية والتطوير والتحديث الأمني الدائم للمنصة إلا أن مدونات وورد برس تبقى عرضة لهجمات القراصنة. فمثلاً من الممكن أن تتعرض بعض المدونات لهجمات حجب الخدمة DDOS وإيقافها لمدة معينة، بينما لا يمكن حدوث أمر من هذا القبيل مع مدونات بلوجر وسيرفرات جوجل، وبالطبع هذا لا يعني أن منصة وورد برس هي منصة غير آمنة، لكن في نفس الوقت يجب الاهتمام بهذه النقطة من قبل المدون لضمان عدم وجود أي مشاكل مستقبلية. الخلاصة: مدونات بلوجر لها أفضلية واضحة من حيث الأمان والحماية، بينما تحتاج مدونات وورد برس إلى المتابعة من صاحب المدونة لتوفير الحماية اللازمة. ثامناً: الدعمللأسف فإن مدونات بلوجر لا تتمتع بدعم حقيقي من طرف جوجل، ففي حال اختيارك للتدوين عبر منصة بلوجر عليك أن تنسى تماماً بعض المصطلحات مثل فريق الدعم أو مجتمع الدعم ومن الأفضل ألا تتعب نفسك في محاولة الاتصال بهم أو حتى البحث عن طريقة للاتصال. وللتوضيح أكثر يوجد هناك منتدى دعم رسمي خاص ببلوجر يطرح بعض المشاكل والحلول الخاصة ببلوجر ويمكنك البحث خلاله عن إحدى المشاكل التي واجهتك، لكن على الأغلب لن تجد هناك أي مساعدة حقيقية لحل مشكلتك عبر هذه المنتديات أو حتى أي تفاعل من قبل المطورين. وباختصار إن واجهتك مشكلة داخل بلوجر فعليك اختصار الوقت والعمل على إيجاد الحل بنفسك أو عن طريق الاستعانة بأحد المختصين بعيداً عن الدعم الرسمي من جوجل. أما بالنسبة لمدونات وورد برس فهي تتمتع بدعم فني كامل، مع وجود العديد من المساهمين والمطورين المستعدين لتقديم المساعدة عبر قسم المساعدة أو المنتدى الرسمي الخاص بالمنصة، وبالتالي ستجد حلاً لأغلب المشاكل التي قد تواجهك عند استخدامك للمنصة بكل سهولة. الخلاصة: تمتلك مدونات وورد برس أفضلية كاملة من حيث الدعم الفني وإيجاد الحلول لأي مشكلة تواجه المدون. تاسعاً: مستقبل المنصّتيندعونا نعود إلى الوراء قليلاً ونتذكر الخطوة التي قامت بها شركة ياهو بإغلاق منتديات مكتوب والصدمة التي تلقتها شريحة واسعة من المستخدمين في العالم العربي حينها. لكن لا شك أن هذه الصدمة ستكون متواضعة جداً في حال أقدمت جوجل على إغلاق خدمة بلوجر بعد فترة معينة من الزمن، ولك أن تتصور ذلك الآن. هناك العديد من المخاوف حول إمكانية إقبال جوجل على خطوة شبيهة بخطوة ياهو يوماً ما، ومما يشير على هذا الأمر أن شركة جوجل لم تقم بإطلاق أي تحديثات حقيقية أو تطوير فعلي على منصة بلوجر منذ فترة طويلة جداً، بالإضافة إلى أن تطبيق بلوجر لنظام أندرويد يعتبر من أسوأ التطبيقات التي أطلقتها الشركة، مما يعطي انطباعاً لدى البعض بعدم اهتمام جوجل بمنصة بلوجر بشكل جدي، وتركيزها بشكل كبير جداً على خدمة يوتيوب التي تحقق لها أرباح طائلة. وعلى الرغم من أن المخاوف بإغلاق خدمة بلوجر هي مخاوف مبررة، لكن لا توجد أي دلائل حقيقية تدعمها أو حتى تلميحات حول الأمر من شركة جوجل، والمقارنة بمسألة إغلاق ياهو لمكتوب لا تستقيم مطلقاً، والمتابع الجيد للأحداث يعلم الصعوبات التي واجهتها ماريسا ماير الرئيسة التنفيذية لشركة ياهو واضطرارها على اتخاذ عدة خطوات حاسمة وقوية، وهو الأمر الذي لا تعاني منه جوجل حالياً ولا حتى في السنوات القليلة المقبلة. لكن لنفترض في أسوء الحالات أن جوجل قامت بإغلاق خدمة بلوجر فهل يعني ذلك ضياع المدونة؟ بالتأكيد لا فشركة عملاقة مثل جوجل لن تترك المستخدم الذي وضع الثقة في خدماتها لسنوات دون إيجاد حل فعال، وأبسط هذه الحلول هو إعطاء مهلة زمنية معينة لنقل المدونة عبر منصة أخرى. بالطبع ستكون هناك أضرار معينة جراء ذلك لكن يمكن مع الوقت تدارك هذه الأضرار والتغلب عليها. أما منصة وورد برس فلا شك أن أمامها مستقبلاً واعداً، فهي تسير يوماً بعد يوم نحو مزيد من التطوير والتحديث خصوصاً مع وجود آلاف المطورين والمختصين في البرمجة أو التصميم والمواضيع المرتبطة بتطوير منصة وورد برس، وبالتالي فإن استخدامك لمنصة وورد برس سيشعرك باطمئنان أكبر حول مستقبل مدونتك وتطويرها بشكل دائم، بالإضافة إلى ذلك ستكون أنت المتحكم الوحيد في مصير المدونة ومستقبلها. الخلاصة: تمتلك مدونات وورد برس أفضلية واضحة من ناحية مستقبل المنصة، سواء من حيث الملكية أو التطوير والتحديث، في نفس الوقت لا يوجد أي نهوض حقيقي لغاية الآن لمنصة بلوجر بالإضافة إلى المخاوف الخاصة بإغلاق الخدمة من طرف جوجل. بعد هذه المناقشة المفصلة لأوجه الفرق بين المنصتين دعونا نلخص أبرز مميزات وعيوب كل منصة على هيئة نقاط سريعة. مميزات بلوجر منصة بسيطة جداً وسهلة الاستخدام.التكامل مع خدمات شركة جوجل وأهمها جوجل أدسنس.مجانية تماماً، مع إمكانية دفع مبالغ بسيطة بحسب رغبة المدون مثل امتلاك دومين مدفوع أو الحصول على قالب خاص وأكثر احترافية من القوالب المجانية.توفر مستوى عالي من الحماية والأمانتساعد المدون بالتركيز على تقديم المحتوى بعيداً عن الأمور الفنية الأخرى.عيوب بلوجر عدم وجود إضافاتخيارات محدودة بالنسبة للتصميم والقالبلست المالك الحقيقي للموقععدم وجود دعم فنيخيارات محدودة جداً لتخصيص المدونة والتحكم بهامميزات وورد برس منصة مرنة تمتلك العديد من الوظائف والخيارات المختلفةوجود مجموعة كبيرة جداً من التصاميم والقوالب التي يمكنك الاختيار بينها.إمكانية تخصيص المدونة بشكل كامل، بالإضافة إلى وجود العديد من الإضافاتإمكانية التحكم الكامل بالمدونة بالإضافة إلى حق الملكية.دعم فني شامل والحصول على حل لأي مشكلة قد تواجهكعيوب وورد برس تحتاج بعض الوقت للتعلم والتعامل مع المنصةتحتاج إلى صيانة ومتابعة دوريةتحتاج إلى دفع تكاليف أكبر وتوفير ميزانية محددة منذ البداية لبناء المدونة.الصعوبة في التعامل مع المنصة والتكيف معها في البداية، خصوصاً للمدونين الجدد.والآن وصلنا إلى الإجابة النهائية عن التساؤل الأساسي لهذا الموضوع، ماذا أستخدم بلوجر أم وورد برس؟ في البداية دعونا نتفق بأن تجربة التدوين وتقديم محتوى جيد هي تجربة تستحق الدعم الكامل والتقدير بغض النظر عن المنصة التي ستقوم باستخدامها لهذا الغرض، فالمدونات هي نشاط لطيف وجميل جداً يساعدنا في قضاء بعض الوقت المفيد والممتع لنا وللآخرين، فتقاسم خبراتك ومعرفتك ومهاراتك مع الآخرين والبدء في تكوين شبكة من الأصدقاء والحصول على بعض الأموال هي تجربة مثيرة وممتعة فعلاً. لكن من الجيد أن تتيح لنفسك القليل من الوقت للتفكير واتخاذ القرار المناسب وفقًا لتطلعاتك وأهدافك التي تريد الوصول إليها من خلال مجال التدوين، فإجراء تعديلات ضخمة على مدونتك بعد فترة من الزمن قد يؤثر على تصنيفها داخل محركات البحث بالإضافة إلى انخفاض عدد الزوار لمدونتك. لذلك أرجو أن تساعدك النقاط التالية بالإضافة إلى المقارنة الفائتة في تحديد اختيارك بصورة ملائمة الحالات التي يُفضل فيها استخدام بلوجرالتدوين بشكل منقطع أو غير نظامي، بحيث تقوم بالتدوين بصورة غير رسمية وعلى فترات متباعدة. عدم الحاجة للعديد من المميزات والخصائص والتحكم داخل المدونة، أي أن ما يهمك هو نشر محتوى معين بعيداً عن خيارات التحكم الخاصة بالمدونة. خوض تجربة جديدة وشبه تجريبية في مجال التدوين، وبالتالي يمكنك استخدام منصة بلوجر لفترة معينة وتحديد خطواتك المقبلة اعتماداً على نتائج هذه الفترة. عدم امتلاك المعرفة اللازمة في الأمور التقنية والفنية المتعلقة بإدارة المدونة، ولا تريد تخصيص بعض الوقت للتعلم عدم الرغبة في إنفاق أي مبالغ مادية على المدونة اقتصار المدونة على مجال واحد فقط من مجالات التدوين. الحالات التي يُفضل فيها استخدام وورد برسإنشاء مدونة شاملة ومتكاملة وتحتاج إلى العديد من إمكانيات التخصيص الرغبة في التحكم الكامل بالمدونة، والاحتفاظ بملكية محتويات المدونة بصورة تامة. العمل على المدونة بشكل تجاري، أي وجود نية لبيعها في مرحلة معينة المقدرة على التعامل الفعال مع منصة وورد برس ومعرفة بالأمور الفنية. المقدرة على دفع التكاليف الخاصة بالمدونة الحاجة لوجود خيارات واسعة لقالب المدونة والتصميم الخاص بها. التدوين المتواصل وطويل المدى ووجود رؤية مستقبلية لدى المدون.
  23. يعتبر Ansible حلًا مناسبًا لأتمتة الأعمال التقنية البسيطة، فإن وجدت نفسك تقوم بتثبيت ووردبريس بشكل متكرر ومُمل، فقد يوفّر عليك Ansible الكثير من الوقت، وباستخدام بعض الأسطر بلغة YAML (وهي لغة توصيف واضحة ومباشرة) سنقوم بأتمتة عملية تثبيت ووردبريس على خادوم يعمل بنظام تشغيل Ubuntu 14.04، وفق الخطوات بصورة أوتوماتيكية. سنستخدم خادومين: أحدهما الخادوم الباني ويتم تشغيل Ansible عليه، والآخر الذي سنقوم بتثبيت ووردبريس عليه باستخدام Ansible. المتطلبات الأولية قبل المتابعة في المقال، سنحتاج للأمور التالية: خادوم يعمل بنظام تشغيل Ubuntu 14.04. سنقوم بتثبيت Ansible على هذا الخادوم (ونشير إليه في المقال بـ الخادوم الباني). سنقوم بتسجيل الدخول إلى هذا الخادوم وجميع الأوامر والملفّات المذكورة في المقال على هذا الخادوم، خادوم آخر يعمل بنظام تشغيل Ubuntu 14.04. سنقوم بتثبيت ووردبريس عليه باستخدام Ansible (وسنشير إليه في المقال بـ خادوم ووردبريس)، حساب مستخدم عادي -على كِلا الخادومين- لا يملك صلاحيات مدير نظام، لكنّه يملك صلاحية تنفيذ الأمر sudo، إضافة مفتاح SSH الخاص بالمستخدم -الذي أنشأناه على الخادوم الباني- إلى المفاتيح المصادقة authorized_keys للمستخدم الذي أنشأناه على خادوم ووردبريس، وينبغي تنفيذ هذه العملية على الخادوم الباني ورفع المفاتيح إلى خادوم ووردبريس. تنفيذ أوامر sudo بدون تأكيد باستخدام كلمة مرور إنّ من الأسرع -ولكن أقل أمانًا- تنفيذ أوامر sudo على خادوم ووردبريس بدون الحاجة لإدخال كلمة مرور تأكيد في كل مرّة. لإعطاء المستخدم على خادوم ووردبريس هذه الإمكانية، سنقوم بتعديل ملف sudoers باستخدام الأمر visudo على سطر الأوامر: $ visudo ومن ثم سنضيف السطر التالي في نهاية الملف: sammy ALL=(ALL) NOPASSWD: ALL ملاحظة: لا تنس استبدال اسم المستخدم (sammy في هذه الحالة) باسم المستخدم الموجود لديك، وتأكد من وضع السطر في نهاية الملف حتى لا يتم تجاوزه بالصلاحيات الافتراضية الموجودة في الملف. نصيحة: قم دومًا باستخدام الأمر visudo عند تعديل ملف sudoers، لأن الأمر سيقوم بالتحقق من التعديلات قبل حفظ الملف ويحميك بالتالي من ارتكاب أخطاء في الملف قد تؤدي إلى منعك من الدخول. حالما تنتهي من تنفيذ العملية السابقة سيغدو بإمكانك تنفيذ الأمر التالي على خادوم ووردبريس بدون إدخال كلمة مرور لتأكيده: $ sudo echo "Hello" وفي بقية المقال، تستطيع تنفيذ الأمر ansible-playbook بدون المُعامل K- كي تتجنب الحاجة لإدخال كلمة المرور للتأكيد بشكل يدوي: $ ansible-playbook playbook.yml -i hosts -u sammy الخطوة الأولى: تثبيت Ansible سنقوم الآن بتثبيت Ansible على الخادوم الباني، ونبدأ بتسجيل الدخول عبر SSH إلى الخادوم وتنفيذ الأمر التالي: $ sudo apt-get install ansible -y وتستطيع التأكد من تثبيت Ansible بتنفيذ الأمر: $ ansible --version حيث ينبغي أن يكون الخرج مشابهًا (وليس بالضرورة مطابقًا) لما يلي: ansible 1.5.4 الخطوة الثانية: إعداد بنية الملفات الآن وبعد أن انتهينا من تثبيت Ansible، دعونا نقوم بإعداد بنية الملفات من أجل Ansible playbook. سنقوم بإنشاء مجلّد على النحو التالي: $ cd ~ $ mkdir wordpress-ansible && cd wordpress-ansible سنقوم الآن بإنشاء ملفّين: الأول يدعى playbook.yml (حيث سنقوم بكتابة الأوامر الخاصة بتثبيت ووردبريس فيه) والثاني يدعى hosts (وهذا يُخبر Ansible عن الخواديم التي سيتم تنفيذ الأوامر عليها): $ touch playbook.yml $ touch hosts إنّ من الأفضل فصل الأوامر بحسب الأدوار، ومن الممكن اعتبار الأدوار كأجزاء من الممكن إعادة استخدامها، وسنقوم في هذا المشروع بإنشاء 4 أدوار: server php mysql wordpress سنقوم بإنشاء مجلد الأدوار في الجذر الرئيسي للمجلد الذي أنشأناه سابقًا wordpress-ansible/~ بتنفيذ الأمر التالي: $ mkdir roles && cd roles والآن سنقوم بتجهيز الأدوار باستخدام أداة من أدوات Ansible تدعى ansible-galaxy، حيث سنقوم من أجل كل دور بتنفيذ الأمر ansible-galaxy init كالتالي: $ ansible-galaxy init server $ ansible-galaxy init php $ ansible-galaxy init mysql $ ansible-galaxy init wordpress ستلاحظ بأن هذا الأمر سيقوم بإنشاء هيكل ملفات متكامل لكل دور من الأدوار، وهذه الخطوة هي إحدى الأمور التي ينصح بها في توثيق Ansible. ما يهمّنا غالبًا هو التعامل مع محتوى ملف tasks/main.yml لكل دور. عند الوصول إلى هذه المرحلة سيكون لدينا الهيكل التالي: [.] |_ playbook.yml |_ hosts |_ [roles] |_ [server] |_ ... |_ [php] |_ ... |_ [mysql] |_ ... |_ [wordpress] |_ ... الخطوة الثالثة: إنشاء الـ Playbook سنقوم الآن بكتابة الأوامر التي ستقوم بتثبيت ووردبريس على خادوم ووردبريس. ملف المخزون hosts يُخبر هذا الملف Ansible بالخواديم التي نرغب بتثبيت ووردبريس عليها، ومن الممكن تنفيذ الأوامر للخواديم أو مجموعة الخواديم المعرّفة في ملف المخزون hosts. سنقوم بتحرير ملف hosts باستخدام محرر nano أو أي محرر آخر تفضّله وكتابة التالي: [wordpress] wordpress_server_ip ملاحظة: من الممكن وضع أي عدد نرغب به من العناوين الرقمية IPs تحت مجموعة [wordpress]. سيؤدي هذا إلى تنفيذ الأوامر على جميع الخواديم المذكورة على افتراض أننا نملك صلاحية استخدام هذه الخواديم. سيمكّننا هذا من تثبيت ووردبريس على أي عدد من الخواديم دفعة واحدة. ملف Playbook يمكن اعتبار هذا الملف كتعريف لتطبيق ووردبريس الذي سنقوم بتثبيته. سيحتوي الملف على جميع الأدوار التي قمنا بإنشائها بغرض تجهيز تطبيق مفيد (ووردبريس في حالتنا). سنقوم بداية بتحرير الملف باستخدام محرر nano أو أي محرر آخر ترغب به: $ nano ~/wordpress-ansible/playbook.yml ومن ثم سنضيف المحتويات التالية إلى الملف، والتي ستُخبر Ansible أية أدوار سيتم تنفيذها على أية خواديم (سيتم تنفيذ الأدوار المذكورة في حالتنا على مجموعة العناوين الرقمية المدرجة في مجموعة wordpress المسجّلة في ملف hosts الذي أنشأناه سابقًا): - hosts: wordpress roles: - server - php - mysql - wordpress والآن لنعد إلى الجذر الرئيسي: $ cd ~/wordpress-ansible/ سنتأكد الآن من أنه من الممكن إجراء اتصال ما بين الخادوم الباني وخادوم ووردبريس من خلال تنفيذ ملف playbook الذي لن يقوم بأي شيء سوى التحقق من الاتصال: $ ansible-playbook playbook.yml -i hosts -u sammy -K ستُطالب بإدخال كلمة المرور لتأكيد الأمر، ولا تنس أن تقوم باستبدال اسم المستخدم بالموجود لديك. سيظهر لنا خرج يشبه التالي عند تنفيذ الأمر: ansible-playbook playbook.yml -i hosts -u sammy -K PLAY [wordpress] ************************************************************** GATHERING FACTS *************************************************************** ok: [188.166.68.134] PLAY RECAP ******************************************************************** 188.166.68.134 : ok=1 changed=0 unreachable=0 failed=0 والذي سيؤكد لنا بأن الاتصال قد تم بنجاح، دون أن يتم تنفيذ أي تعديلات لأننا لم نقم بتحديد أي أوامر لتنفيذها حتى الآن. إن فشل تنفيذ الأمر فتأكّد من أن باستطاعتك تسجيل الدخول إلى خادوم ووردبريس من الخادوم الباني باستخدام مفتاح SSH الذي قمت بنسخه في البداية. الخطوة الثالثة: إنشاء الأدوار دور Server سنقوم بداية بتعريف الأوامر التي سيتم تنفيذها على الخادوم ولهذا الغرض سنقوم بتحرير أوامر دور server. ستقوم الأوامر التي سنصرّح عنها بتثبيت جميع البرمجيات التي سنحتاجها على السيرفر الهدف. نبدأ بتنفيذ الأمر التالي: $ nano roles/server/tasks/main.yml قم بإضافة المحتويات التالية وتأكد من وجود سطر واحد فقط يحتوي على --- (حيث يوجد هذا السطر سلفًا بشكل افتراضي): --- - name: Update apt cache apt: update_cache=yes cache_valid_time=3600 sudo: yes - name: Install required software apt: name={{ item }} state=present sudo: yes with_items: - apache2 - mysql-server - php5-mysql - php5 - libapache2-mod-php5 - php5-mcrypt - python-mysqldb سيقوم المحتوى السابق بما يلي: تحديث خبء apt-cache (تنفيذ الأمر apt-get update)، تثبيت Apache ،MySQL ،PHP وبرمجيات أخرى مرتبطة باستخدام apt-get install. وإن كنت مهتمًّا بمعرفة تفاصيل ما نقوم بتثبيته، فيمكنك الاطلاع على هذا المقال حول تثبيت LAMP على Ubuntu 14.04 بشكل يدوي. سنقوم الآن بتنفيذ ansible-playbook مرة أخرى على النحو التالي: $ ansible-playbook playbook.yml -i hosts -u sammy -K ويفترض هذه المرة أن يكون الخرج بما يشبه التالي: ansible-playbook playbook.yml -i hosts -u sammy -K PLAY [wordpress] ************************************************************** GATHERING FACTS *************************************************************** ok: [188.166.68.134] TASK: [server | Update apt cache] ********************************************* ok: [188.166.68.134] TASK: [server | Install required software] ************************************ changed: [188.166.68.134] => (item=apache2,mysql-server,php5-mysql,php5,libapache2-mod-php5,php5-mcrypt,python-mysqldb) PLAY RECAP ******************************************************************** 188.166.68.134 : ok=3 changed=1 unreachable=0 failed=0 وبعد التنفيذ، ينبغي أن تكون قادرًا على استعراض الصفحة الافتراضية لـ Apache عبر فتح العنوان http://wordpress_server_ip في المتصفح. ملاحظة: إن توقّف تنفيذ الأمر بشكل نهائي عند سطر [TASK: [server | Update apt cache فمن المحتمل أن يكون هناك نقص في الصلاحيات المطلوبة على الخادوم الهدف، لذا تأكّد من أن الوصول باستخدام sudo تم إعداده بشكل صحيح على خادوم ووردبريس. دور PHP سنقوم الآن بتجهيز الأوامر التي تستهدف PHP، ولهذا الغرض سنقوم بتحرير الملف الخاص بهذا الدور: $ nano roles/php/tasks/main.yml ومن ثم سنضيف المحتوى التالي (تأكّد من وجود سطر واحد فقط يحتوي على --- في بداية الملف): --- - name: Install php extensions apt: name={{ item }} state=present sudo: yes with_items: - php5-gd - libssh2-php سيقوم المحتوى السابق بتثبيت الملحقات extensions الضرورية لـ PHP وهي: php5-gd و libssh2-php. دور MySQL سنقوم الآن بإعداد قاعدة بيانات MySQL لموقع ووردبريس، وذلك في دور mysql. سنحتاج من أجل القيام بذلك إلى بعض المتغيّرات، والتي من الممكن تخزينها في ملف المتغيرات الافتراضية defaults/main.yml: $ nano roles/mysql/defaults/main.yml سنضيف في الملف اسم قاعدة البيانات، اسم المستخدم الخاص بالقاعدة، كلمة المرور الخاصة بالمستخدم وبنفس الترتيب، ولا تنس أن تستخدم كلمة مرور معقّدة لأغراض أمنية: --- wp_mysql_db: wordpress wp_mysql_user: wordpress wp_mysql_password: wp_db_password والآن نستخدم nano لتحرير ملف المهام: $ nano roles/mysql/tasks/main.yml ونضيف المحتوى التالي: --- - name: Create mysql database mysql_db: name={{ wp_mysql_db }} state=present - name: Create mysql user mysql_user: name={{ wp_mysql_user }} password={{ wp_mysql_password }} priv=*.*:ALL يقوم المحتوى السابق بـ: إنشاء قاعدة بيانات MySQL، إنشاء مستخدم MySQL، إعطاء المستخدم صلاحية الوصول إلى قاعدة البيانات. وكما ترى فسيتم استخدام قيم المتغيرات بشكل تلقائي من ملف defaults/main.yml عند تنفيذ الأوامر. ملاحظة: توفّر أدوات Ansible أداة ansible-vault والتي تسمح بتخزين كلمات المرور بصورة مشفّرة حتى لا تكون قابلة للقراءة في الملف، ولكن الحديث عن هذا خارج إطار حديثنا الآن. دور WordPress والآن نأتي للحظة التي كنا ننتظرها.. تثبيت ووردبريس. نبدأ بتحرير ملف المهام كالمعتاد: $ nano roles/wordpress/tasks/main.yml وسنقوم بنسخ المحتوى التالي إليه: --- - name: Download WordPress get_url: url=https://wordpress.org/latest.tar.gz dest=/tmp/wordpress.tar.gz validate_certs=no sudo: yes سيقوم المحتوى السابق بتحميل ووردبريس إلى مجلد tmp/ (ويمكن للحذرين أن ينتبهوا إلى أننا قمنا بتعطيل التحقق من الشهادة الأمنية، لأنه سيمنع عملية التحميل). بعد اكتمال التحميل سنقوم بفك ضغط الملف إلى var/www/، وهو المسار الذي يستخدمه Apache لتخزين محتوى الويب، وبالتالي سنضيف الجزء التالي لمحتوى الملف أيضًا: - name: Extract WordPress unarchive: src=/tmp/wordpress.tar.gz dest=/var/www/ copy=no sudo: yes وبعد أن يتم فك ضغط الملفات، سنقوم بتحديث مسار الجذر الافتراضي DocumentRoot في ملف إعدادات Apache كي يشير إلى موقع ووردبريس: - name: Update default Apache site sudo: yes lineinfile: dest=/etc/apache2/sites-enabled/000-default.conf regexp="(.)+DocumentRoot /var/www/html" line="DocumentRoot /var/www/wordpress" notify: - restart apache sudo: yes لاحظ أننا استخدمنا الكتلة notify، والتي نحتاجها عند الرغبة بإعادة تشغيل خدمات بعد أن يتم تنفيذ مهمّة بنجاح، ولا يتم تنفيذ معالجات notify إلا عندما يحصل تغيير على حالة المهمّة. سنقوم بإضافة المعالج الخاص بنا لإعادة تشغيل Apache باستخدام restart apache ويتم ذلك في الملف roles/wordpress/handlers/main.yml: $ nano roles/wordpress/handlers/main.yml نضيف المحتوى التالي: --- - name: restart apache service: name=apache2 state=restarted sudo: yes ويتم تنفيذ هذه المهمّة عندما تتغير حالة المهمّة التي تحتوي على الكتلة notify: restart apache، مما يؤدي إلى إعادة تشغيل الخدمة. إعداد ووردبريس بالعودة إلى roles/wordpress/tasks/main.yml، سنقوم الآن بتجهيز إعدادات موقع ووردبريس، فنقوم أولًا بنسخ ملف الإعدادات config الافتراضي: - name: Copy sample config file command: mv /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php creates=/var/www/wordpress/wp-config.php sudo: yes ومن ثم نقوم بتغيير بعض الثوابت في الملف لتتطابق مع معلومات الاتصال بقاعدة البيانات: - name: Update WordPress config file lineinfile: dest=/var/www/wordpress/wp-config.php regexp="{{ item.regexp }}" line="{{ item.line }}" with_items: - {'regexp': "define\\('DB_NAME', '(.)+'\\);", 'line': "define('DB_NAME', '{{wp_mysql_db}}');"} - {'regexp': "define\\('DB_USER', '(.)+'\\);", 'line': "define('DB_USER', '{{wp_mysql_user}}');"} - {'regexp': "define\\('DB_PASSWORD', '(.)+'\\);", 'line': "define('DB_PASSWORD', '{{wp_mysql_password}}');"} sudo: yes حيث ستقوم المهمّة بجلب معلومات الاتصال بالقاعدة من ملف المتغيّرات الافتراضية الذي قمنا بتحريره سابقًا. بعد الانتهاء من الخطوات السابقة بنجاح، سيكون قد أصبح لدينا ملفّين لدور wordpress، وفيما يلي النسخة الكاملة لمحتوى الملفّين.. ملف roles/wordpress/tasks/main.yml: --- - name: Download WordPress get_url: url=https://wordpress.org/latest.tar.gz dest=/tmp/wordpress.tar.gz validate_certs=no - name: Extract WordPress unarchive: src=/tmp/wordpress.tar.gz dest=/var/www/ copy=no sudo: yes - name: Update default Apache site sudo: yes lineinfile: dest=/etc/apache2/sites-enabled/000-default.conf regexp="(.)+DocumentRoot /var/www/html" line="DocumentRoot /var/www/wordpress" notify: - restart apache - name: Copy sample config file command: mv /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php creates=/var/www/wordpress/wp-config.php sudo: yes - name: Update WordPress config file lineinfile: dest=/var/www/wordpress/wp-config.php regexp="{{ item.regexp }}" line="{{ item.line }}" with_items: - {'regexp': "define\\('DB_NAME', '(.)+'\\);", 'line': "define('DB_NAME', '{{wp_mysql_db}}');"} - {'regexp': "define\\('DB_USER', '(.)+'\\);", 'line': "define('DB_USER', '{{wp_mysql_user}}');"} - {'regexp': "define\\('DB_PASSWORD', '(.)+'\\);", 'line': "define('DB_PASSWORD', '{{wp_mysql_password}}');"} sudo: yes ملف roles/wordpress/handlers/main.yml: --- - name: restart apache service: name=apache2 state=restarted sudo: yes ونكون قد انتهينا. لنقم الآن بتشغيل ansible-playbook لآخر مرة لإعداد موقع ووردبريس: $ ansible-playbook playbook.yml -i hosts -u sammy -K وبعد تنفيذ الأمر ينبغي أن نكون قادرين على تصفّح الموقع عبر طلب عنوانه http://your_server_ip في المتصفح ويمكن الآن متابعة إعداد موقع ووردبريس بشكل يدوي عند هذه المرحلة. الخلاصة تهانينا! ستتمكن الآن من تثبيت مواقع ووردبريس على أي عدد من الخواديم التي تعمل بنظام تشغيل Ubuntu باستخدام أمر واحد: $ ansible-playbook playbook.yml -i hosts -u sammy -K وكل ما تحتاج للقيام به هو إضافة العنوان الرقمي IP إلى قائمة الخواديم المستهدفة في ملف hosts والتأكّد من أن الصلاحيات قد تم إعدادها مسبقًا على الخادوم الهدف. تناولنا في المقال بصورة سريعة كيفية استخدام Ansible لتثبيت مواقع ووردبريس بشكل اوتوماتيكي، وقد تكون مهتمًّا ببعض التحسينات الإضافية الممكنة: تعلّم كيفية استضافة أدوارك الخاصة في الـ Ansible Galaxy. أتمتة عملية الإعداد النهائية لموقع ووردبريس حتى لا يكون هناك حاجة للقيام بأي إعداد يدوي للموقع المطلوب إطلاقًا. ترجمة -وبتصرّف- للمقال How To Automate Installing WordPress on Ubuntu 14.04 Using Ansible لصاحبه Christo Crampton.
  24. إن تقديم الخصومات والمنتجات/الخدمات المجانية للعملاء المحتملين هي وسيلة فعالة لزيادة الاهتمام فيك وفي أعمالك. وسيزداد الإهتمام بشكل كبير بعرضك، عندما تتيحه لمدة محدودة فقط، والتفسير النفسي لهذا هو أن ندرة شيء ما مهما كان (طعام، موارد أو حتى عرض مثير…) سيدفعنا للتّصرف بسرعة للحصول عليه قبل فوات الأوان. في درسنا اليوم سنتعلم كيف يمكننا الاستفادة من هذا المفهوم باستخدام ملحقي Social Marketing و Scheduled Content وسننشئ عرضًا لمدة محدودة لتشجيع المستخدمين للإعجاب بحساباتنا على شبكات التواصل الاجتماعي ومن ثم العودة للوصول إلى الخصم الخاص. لنبدأ! Social Marketing و Scheduled Content ستتمكن من لفت الأنظار حول ما تقدّمه من مُنتجات باستخدام ملحق Social Marketing من خلال تقديم حوافز للمستخدمين الذين ينشرون منتجاتك أو خدماتك على شبكات التواصل الإجتماعي الكبرى مثل فيسبوك وتويتر و جوجل+ وغيرها. يعمل هذا الملحق على عرض إعلان مباشرة في موقعك عن طريق عرض نافذة منبثقة تظهر بها روابط المشاركة على شبكات التواصل الاجتماعي، وعندما يشارك أحد الزوار عرضك، يتم الكشف عن العرض مع رسالة. يمكنك دمج الإعلانات بسهولة مع مشاركاتك وصفحاتك باستخدام الأكواد القصيرة (shortcodes)، ويمكنك أيضا تخصيصها بسهولة بالاعتماد على الكثير من الخيارات التي تختارها عند إنشائك لإعلانك. أما بالنسبة لـ Schedule Selected Content فسيسمح لك بجدولة المحتويات لإظهارها على موقعك في أي وقت تريده في المستقبل. ستتمكن باستخدام هذين الملحقين من إنشاء وجدولة عروض محدودة الوقت للشبكات الاجتماعية. في هذا الدرس، سأنشئ عرضًا لشركتي المتخصصة في تصميم الويب لأريك كيف يمكنك إعداد هذه الملحقات. سأنشئ عرضًا يمنح قسيمة (coupon) مجانية للحصول على مُلحق تجاري بالإضافة إلى دعم مجاني لمدة شهر مع تخفيض 50% على أسعار القوالب، وهذا العرض سيبقى لمدة 24 ساعة وسينتهي عند منتصف الليل. البداية ثبت وفعّل أولا ملحقي Schedule Selected Content و Social Marketing. إعداد Social Marketing عند تفعيل ملحق Social Marketing، ستُوجّه إلى صفحة إعداداته، ويمكنك إنشاء إعلانك الأول بثلاثة خطوات فقط: إعداد الخيارات: سنتحكّم هنا في الإعدادات الأساسية للإعلان مثل خيارات المظهر والتحميل… إنشاء إعلانك: سيظهر هنا شكل إعلانك بعد إضافة المحتويات والتفاصيل. إضافة إعلانك: سيتم توفير كود قصير سيمكنك من إضافة إعلانك في أي مكان في موقعك. انقر على زر Configure your settings لإعداد الخيارات حسب تفضيلاتك. يمكنك إما اختيار إحدى القوالب الجاهزة أو استخدام أنماط (stylesheet) موقعك الحالي لإنشاء إعلانك. أود أن أذكر أن خيار "lazy dependency loading" سيحمّل -عند تفعيله- عناصر إعلانك حسب الحاجة وذلك لتقليص وقت تحميل موقعك. عند انتهاءك من الخيارات، انقر على زر Save Changes and go back to Tutorial في أسفل الصفحة. إنشاء الإعلان بعد ذلك انقر على زر Create Advert في صفحة Getting Started، ستلاحظ وجود محرر WYSIWYG والذي يشبه كثيرا محرر التدوينات والصفحات باستثناء أنه توجد بعض الخيارات الإضافية أسفل المحرر. أدخل عنوان ومحتويات إعلانك، كِلا الحقلين سيظهران في الواجهة الأمامية (front end)، وبعد ذلك أدخل الخيارات التي ترغب بها لكن قبل أن تنقر على Publish، قد ترغب في إضافة و جدولة إعلانك أوّلًا. إظهار عرضك محدود الوقت أنشئ مشاركة أو صفحة جديدة أو حتى افتح واحدة قمت بإنشائها سابقا تريد إظهار عرضك فيها (يمكنك أيضا إظهار إعلانك في نافذة منبثقة باستخدام ملحق PopUp Pro). بعد ذلك حدد المكان التي تريد عرض إعلانك بها وانقر على Insert Social Ad بجانب زر Add Media في أعلى المحرر. ستظهر لك نافذة منبثقة حيث يمكنك اختيار المحاذاة وبعدها ستجد زر Insert Social Ad والذي يسمح لك بعرض الإعلان الذي تريده. عند الضغط على رابط Advanced ستظهر لك خيارات إضافية حيث يمكنك إضافة أصناف CSS لاستخدامها في ملف styles.css. سيظهر لك كود قصير shortcode في المحرر. حان الآن وقت جدولة عرضك. جدولة عرضك لمدة محدودة حدد الكود قصير shortcode، وستجد زرًا في أسفل المحرر المرئي لجدولة إعلانك بجانب أيقونة Toggle Toolbar. أنقر عليه. ستظهر لك نافذة منبثقة تسمح لك بكتابة التواريخ المطلوبة وعدد مرات تشغيل عرضك المحدود. بمجرد أن تنتهي من اختياراتك، انقر على زر Insert في أسفل الجانب الأيمن من النافذة المنبثقة، وبعد ذلك انقر على Update أو Publish لإظهار إعلانك للجميع. الخاتمة تملك الآن الأدوات اللازمة لإضافة عرضك لمدة محدودة إلى موقعك، وإذا واجهت بعض المشاكل، يمكنك التحقق من التوثيق الموجود في علامة التبويب Usage في صفحات ملحقي Social Marketing و Schedule Selected Content. ترجمة -وبتصرف- للمقال: Creating a Limited Time Offer on Your Site with Social Marketing and Scheduled Content لصاحبته Jenni McKinnon.
  25. يمكن لنقل مدونتك إلى خادوم جديد أو خدمة استضافة ووردبريس أخرى أن يستهلك الكثير من الوقت وقد يتحول الأمر إلى كابوس حقيقي ما لم تملك الأدوات المُناسبة لذلك. لحسن حظّك لن تراودك أية كوابيس بفضل مُلحق Snapshot. لا يعلم كثير من مستخدمي snapshot أنه يحتوي على خاصية التهجير. ولهذا رغبت في أن أتطرّق لها في هذا الدّرس. هذا الدّرس موجّه لك سواء كنت تستخدم نسخة ووردبريس العادية (موقع واحد) أو نسخة متعددة المواقع. يُمكنك تنفيذ خطوات هذا الدّرس حتى ولو رغبت من نقل مدونتك من نسخة ووردبريس عادية إلى تلك التي تدعم مواقع عديدة والعكس. إن أردت أن تغير اسم نطاق موقعك، سأعمل على إعطاء بعض التوجيهات في ما يخص هذا الأمر أيضا. لم تعد وظائف ملحق Snapshot تقتصر على عمل نسخ احتياطية (backing up) واسترجاعها (restoring) فحسب بل أصبحت تتعدى ذلك بكثير، لنبدأ دون أي تأخير في التعرف على كيفية تهجير موقعك. يبدأ الأمر بإعداد نسخة احتياطية (Backup) فلنبدأ بالأساسيات: إن أردت تهجير موقعك باستخدام Snapshot عليك أولا بعمل نسخة احتياطية، لكن قبل القيام بذلك يجب أن تنصب وتفعل Snapshot سواء من خلال استخدام ملحق WPMU DEV Dashboard في خلفية (backend) موقعك أو عن طريق تحميل Snapshot مباشرة. قبل أن نواصل، من الحري بنا أن نشير إلى إمكانية مواجهة Snapshot بعض المشاكل في التشغيل إن لم تكن تمتلك حد ذاكرة أقصى كافيا على استضافة ووردبريس الخاصة بك. لتجاوز هذا المشكل اطلع على مقال: كيفية الزيادة في القيمة القصوى للرفع وفي الحد الأقصى لذاكرة PHP على ووردبريس، يعتبر القيام بهذه العملية التي لا تستغرق أكثر من بضع دقائق أمرا في غاية الأهمية، من الوارد جدا أن تواجه مستقبلا مشاكل أخرى تتعلق بالحد الأقصى للذاكرة إن لم يكن قد حدث ذلك فعلا. إليك كيفية عمل نسخة احتياطية (backup): اذهب إلى: Snapshots > Add New في لوحة التحكم، (أو في لوحة تحكم الشبكة (super admin) في حالة نسخة ووردبريس متعددة المواقع). إن لم يتم عرض عنوان URL الخاص بموقعك أسفل Blog to backup، اضغط على زر Change لتحديد موقع آخر في حال استخدامك نسخة ووردبريس متعددة المواقع، لن تواجه هذا الأمر في حال استخدام النسخة العادية (موقع واحد). حدد الموقع الذي تريد تهجيره إن لم يكن محددا مسبقا قم بتحديد include selected files في قسم What Files to Archive، ثم ضع علامة في كل الخانات الظاهرة أمام الملفات الموافقة لها. بغرض نقل موقعك بنجاح، عليك بحفظ كل شيء. إن اخترت أيا من الخيارات الأخرى، لن يتم نسخ التغييرات المخصصة التي قمت بها. إن كنت تعتزم عمل نسختك الاحتياطية على Dropbox يمكنك أن تترك خيار Archive الافتراضي عوض خيار Mirror/Sync. يجب أن يتم حفظ كل الملفات من أجل عملية تهجير ناجحة في القسم التالي، اضغط على زر الاختيار Include selected database tables in this Snapshot. لا تنس تحديد الجداول (tables) عندما تظهر قائمة جداول قاعدة البيانات، اضغط على Select all links لتحديد كل الخانات تلقائيا، يضمن القيام بهذه الخطوة تخزين نسخة احتياطية لكل الجداول حتى يظهر موقعك بنفس الشكل بعد تهجيره. يمكن تحديد زر الاختيار الأوسط لتضمين كل الجداول تلقائيا دونما الحاجة إلى تحديدها كلها، يضمن تحديد كل الجداول يدويا التأكد من تخزين نسخة احتياطية منها كلها. يبقى القرار الأخير لك حول أي الخيارين ستعتمد. أسفل Backup Interval، اترك خيار Run Immediate محددا واكتب رقما مناسبا في خانة Maximum number of local archives، عادة ما أكتب رقم 2، حتى يتم تخزين نسختين فقط دفعة واحدة فيما يخص هذا الجانب بالتحديد. إن قمت بكتابة عدد كبير أو 0 للحفاظ على كل النسخ الاحتياطية، عليك أن تتأكد من توفرك على مساحة التخزين الكافية لهذا الغرض. حدد مكان حفظ نسختك الاحتياطية من القائمة المنسدلة Backup Destination من خلال تحديد واحدة من الخيارات التي أعددتها مسبقا. إن لم تكن تتوفر على أي وجهة تخزين محفوظة ولا تريد عمل نسختك الاحتياطية على خادومك، تجاوز هذا القسم حاليا. اختر وجهة حفظ نسختك الاحتياطية بعد الاختيار، اضغط على زر Create Snapshot المتواجد أسفل الصفحة. يمكنك أن ترى في الصفحة التالية نسخة snapshot الخاصة بك في طور الإنشاء. لا تقلق إن استغرق الأمر بضع ثوان، خصوصا بالنسبة للمواقع الكبيرة فهذا عادي جدا. لن تأخذ العملية فترة طويلة. عندما ترى رسالة أعلى الشاشة تخبرك بنجاح العملية فإن ذلك علامة على انتهاء إنشاء نسختك الاحتياطية، اذهب إلى: Snapshots > All Snapshots لتراها في القائمة. أخيرا، تفحص حالة نسختك أسفل خانة Archives، يجب أن يتم إدراج حالة النسخة الاحتياطية في وجهة الحفظ (destination) التي اخترتها. تأكد من إرسال نسختك الاحتياطية إلى الوجهة المحددة إن رأيت جملة Destination: 1 Pending فمعنى ذلك أنه يتم رفع نسختك إلى وجهة الحفظ، في حالتي يعني هذا أن عملية المزامنة مع حسابي في Dropbox في طور الإنجاز. بمجرد مزامنة نسختك الاحتياطية مع وجهة التخزين، فأنت على أتم استعداد لبدأ تهجير موقعك. تهجير موقعك بعد تجهيز نسخة snapshot الخاصة بك، عليك بتنصيب نسخة جديدة من ووردبريس على خادومك الجديد. يتضمن ذلك كل الاحتمالات الممكنة لتهجير موقعك سواء ضمن شبكة ما أو إلى شبكة ما. على استضافتك الجديدة، قم بتثبيت وتفعيل نفس القوالب والملحقات المتواجدة على الموقع الذي تود تهجيره. بعد ذلك، قم بتثبيت وتفعيل القالب الذي تود استخدامه في موقعك الجديد بعد التهجير، يجب أن يتم تفعيله قبل التهجير حتى وإن كان متضمنا في نسخة snapshot. تضمن هذه الخطوة جاهزية موقعك مباشرة بعد إتمام العملية. نصِّب وفعِّل Snapshot على موقعك الجديد إن لم تكن قمت بذلك مسبقا. بعد ذلك، اذهب إلى: Snapshots > Import وأدخل عنوان URL عامًا (public URL) أو مسار ملف إلى ملحق snapshot الخاص بك. ما يعني أنك إن أرسلت نسختك الاحتياطية إلى Dropbox ،Amazon S3 أو وجهة أخرى، سيكون عليك سواء أن تجعل الملف عاما (public)، مشاركته برابط أو حفظه في مكان آخر. استيراد نسخة snapshot إن كانت نسخة snapshot الخاصة بك متواجدة على خادومك، ما عليك إلا أن تكتب مسار الملف الذي يؤدي إليها. عند إدخال نسخة snapshot إلى خانة الاستيراد (import field)، اضغط على زر Scan/Import Snapshots. من المفترض أن يتم عرض رسالة " success" أسفل الصفحة. إن أدخلت مسار ملف قد تظهر أكثر من رسالة واحدة. حان الوقت الآن لإتمام تهجير الموقع من خلال الذهاب إلى: Snapshots > All Snapshots تم استيراد نسخة snapshot بنجاح اعثر على نسخة snapshot الخاصة بك مدرجة في القائمة، ضع مؤشر فأرة الحاسوب فوق العنوان ثم حدد رابط restore. إن لم تكن متأكدا من ماهية كل عنصر، حاول مقارنة اسم ملف نسخة snapshot مع اسم الملف في وجهة الحفظ. من المفترض أن يتم بعد ذلك توجيهك إلى صفحة أرشيف كل النسخ الاحتياطية. اضغط على restore لإنهاء عملية التهجير شخصيا، أمتلك نسخة snapshot واحدة في أرشيفي، يمكن أن يكون لديك أكثر من ذلك. اختر تلك التي تريد استخدامها، ثم ضع الفأرة فوق عنوانها. اختر استرجاع (restore) نسخة snapshot التي تريد اضغط على رابط restore الذي يظهر. في الصفحة الموالية، يمكنك مراجعة الخيارات وما تستطيع أن تقوم بتهجيره. الانتهاء من التهجير وتغيير النطاق انزل نحو قسم Restore Blog Options، ثم اضغط على زر Change قرب الوسم Site URL.تستطيع أن تغير عنوان URL الخاص بملفات نسختك الاحتياطية حتى يتم استخدام موقعك القديم مع نطاقك الجديد. يمكن تهجير موقعك إلى عنوان URL مختلف في الخانة الظاهرة، تستطيع إدخال رقم تعريف الموقع (site ID) أو مسار المدونة الخاص بالموقع الجديد الذي أنشأته ليتم استبداله بنسخة snapshot. اضغط على زر Lookup ليتم عرض الموقع الذي قمت بتحديده. في القسم التالي المسمى ?What Tables to Restore اضغط على الخيار Restore selected database tables. لا تختر الخيار الأول لاسترجاع كل الجداول نظرا لأن بعضها تم استثناؤه اضغط على رابط Select All قرب وسم WordPress Global Tables. من المفترض أن يتم تحديد الجداول الأخرى تلقائيا، إن لم يحدث ذلك، اضغط على روابط Select All. اختر خيار Include selected files في القسم التالي وتأكد من وضع علامة في كل الخانات. إن لم تكن تقوم بتهجير موقعك الأساسي قم بتحديد خيار Restore all files. في آخر جزء من الصفحة، اختر من القائمة القالب الذي تود استخدامه من بين تلك المتوفرة في استضافتك الحالية. تأكد من تنصيب وتفعيل القالب الذي تود استخدامه في موقعك الجديد بعد التهجير تأكد أيضا من عدم وضع علامة في خانة Turn off all plugins وإلا قد لا يتم عرض موقعك بشكل جيد بعد التهجير. أخيرا، اضغط زر Restore Snapshot أسفل الصفحة. من المفترض أن ترى رسالة مشابهة بمجرد انتهاء عملية التهجير باستخدام snapshot في الصفحة التالية، ستظهر قائمة تحتوي على الجداول والملفات إضافة إلى عمود يعرض حالة تقدم عملية الرفع. بعد انتهاء عملية التهجير بنجاح تظهر رسالة أعلى الصفحة تشير إلى ذلك. عملية تهجير بسيطة باستخدام Snapshot موقعك الجديد بعد التهجير جاهز الآن كما أنه يبدوا تماما مثل سابق عهده فقط على خادوم ونطاق جديدين. لقد قمت بعد تطبيق هذا الموضوع بتهجير موقعك بسهولة باستخدام Snapshot موفرا عليك عناء الساعات التي كنت ستقضيها للقيام بهذه العملية يدويا. ترجمة -وبتصرف- للمقال: How to Move a WordPress Site Without Hassle with Snapshot لكاتبته: JENNI MCKINNON.