المحتوى عن 'ووردبريس'.



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

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

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

نوع المُحتوى


التصنيفات

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

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
    • React
  • HTML
    • HTML5
  • CSS
  • SQL
  • لغة C#‎
  • لغة C++‎
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ASP.NET
    • ASP.NET Core
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
    • منصة Xamarin
  • سهولة الوصول
  • مقالات برمجة عامة

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

أسئلة وأجوبة

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

التصنيفات

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

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

  1. كثيرًا ما يتكرّر هذا السيناريو: يأتي مطوّر وِب بنيّة إضفاء ”العصريّة“ لأحد المواقع (أي ليحسّن تجربته على المحمول أو يعدّل لوحة الألوان المستعملة فيه أو الخطوط أو أيّ شيء آخر)، وينتهي الأمر بأن يهدم إحدى أكثر المشاريع التجارية ازدهارًا على الإنترنت – أن يقتل الموقع بأخطاء السيو SEO (اختصار Search Engine Optimization أو ”تحسين محرّكات البحث لظهور الموقع“). وحين أقول ”كثيرًا“ فلستُ أبالغ أو أضخّم الأمر، بل أقصدها. فحين يراسلني زبونين اثنين مستقلّين يواجهان المشكلة ذاتها وفي أسبوع واحد، تكون ”كثيرًا“ حقًا. إليك ما يصف هذان الزبونان معًا وصفًا عادلًا: إذًا، ما سبب المشكلة؟ في الحالتين أعلاه: انعدام كفاءة مطوّر ووردبريس الذي أعاد تطوير الموقع، وتدميره لسيو الموقع (أي ترتيبه في عمليات البحث الطبيعيّة) وهو يعمل على التصميم الجديد. ولكن ولحسن الحظ، فأخطاء مطوّري ووردبريس تتشابه. هذا المقال مُوجّه لمُلّاك المواقع والمطوّرين على حدّ سواء، ويحاول شرح الطرائق الثلاثة الرئيسيّة التي ينفّذها مطوّر ووردبريس بلا قصد، فيُضرّ بترتيب عمليات البحث الطبيعيّة للموقع. سأحاول تقديم الطريقة التي يقدر بها مُلّاك المواقع حماية أنفسهم من أخطاء المطوّرين، كما ويعلم بها المطوّرين لئلا يقعوا في أيّة مشاكل شبيهة. أخطاء ثلاثة لتتجنّبها: كيف يقتل المطوّر سيو الموقع غالبًا ما يُضرّ المطوّر عديم الكفاءة بترتيب موقع ووردبريس في نتائج البحث – يُضرّه بثلاث طرائق رئيسية. بالطبع هناك أخرى غيرها ولكن هذه هي الأساسية. (ولو كنت مهتمًا، فالزبونان اللذان راسلاني هذا الأسبوع واجها نتائج الخطأين #1 و #2 بالترتيب). نفصّل أدناه كلّ مشكلة من هذه المشاكل بذكر: وصف عام لها، وطرائق حدوثها، وعواقبها وطريقة تجنّبها في مشاريعك على الوِب. لو كنت مطوّرًا فاقرأ الآتي واحرص على ألا تتسبّب بهذه المشاكل كي لا يضع الزبائن على اسمك علامة حمراء. ولو كنت مالكًا لموقع فحاول أن تُدرك ماهيّة هذه المشاكل وأعراضها خصوصًا لو بدأت تشكّ بأن ثمة مشاكل في أداء الموقع في عمليات البحث الطبيعية. وطبعًا، كيف تحمي نفسك منها. 1. ترك خيار ”منع محركات البحث من أرشفة هذا الموقع“ مؤشّرًا في موقع ووردبريس حين يُنشر لو أمكنني فقط إزالة هذا المربّع من ووردبريس، لو أمكنني… وظيفة الخيار ”منع محركات البحث من أرشفة هذا الموقع“ (Discourage Search Engines) هي كما يقول بالضبط، فهو يُخبر محرّكات البحث بأن تتجاهل الموقع تمامًا. لو أردت تفاصيل أكثر عن طريقة عمله فرجاءً اقرأ مقالي حول الموضوع. كيف تحدث المشكلة التأشير الخطأ لهذا المربّع يحصل في حالات عدّة مختلفة، إلّا أنّ الحالة المنتشرة هي تأشيره بينما يجري تطوير الموقع، ونسيان إلغاء تأشيره حين يُنشر. حين يُؤشّر على هذا المربّع يعرض ووردبريس تنبيهًا صغيرًا يقول ”Search Engines Discouraged“، ويمكن لمالك الموقع والمطوّر ألّا يعلمان به لشهور أو حتّى سنين. نتيجة هذه المشكلة هي أنّ جوجل سيُلغي فهرسة (كما طلبت تمامًا) موقعك و”ينسى وجوده“. ما إن يرى جوجل أنّ هذا المربّع مؤشّر فستخرج من نتائج عمليات البحث الطبيعيّة تمامًا. تبعات المشكلة النتيجة؟ بالضبط ما فعلناه: سيختفي الموقع من كل عملية بحث طبيعية وتحت أيّ ظرف كان. وبالنسبة إلى عمليات التحسين هذه، فهذا يعني ”الصفر المطلق“ وليس هناك ما هو أسوأ من هذا. ولو كنت تراقب حركة الناس في موقعك بانتظام ستلاحظ تأثير هذا بسرعة. فخلال أسبوع أو اثنين (ومع احترام جوجل طلبك بعدم فهرسة الموقع) سترى حركة الناس الطبيعية (أي من نتائج البحث) انخفضت إلى حدود الصفر أو الصفر حتى. بنظرة أولى سترى أن الحركة بشكل عام انخفضت 50 أو حتى 70 بالمئة بدون أن تعرف لذلك سببًا واضحًا. ولكن، إلغاء تأشير المربّع لن يحلّ المشكلة، فجوجل يعمل بالأقدميّة. أي أن المواقع التي كان لها تقييم س لعدد من عمليّات البحث لأشهر وسنوات متواصلة ستبقى كذلك لهذه العمليات، ذلك لأنّها موجودة منذ زمن طويل، وهذا سبب من الأسباب. التقييمات تتوارث -إن صح التعبير-، فحتّى الشهر أو الشهرين بعد إلغاء الفهرسة بالإجبار سيضرّ بتقييمات الموقع ويصعّب من إصلاحه بسرعة إلى حدّ الإستحالة. يمكن القول أنّ ”مكانك في الطابور ضاع“. صحيح أنّك غادرته لبرهة قصيرة، ولكنّك الآن ستبدأ من آخره. فعلتُ هذا مرّة لأحد زبائني حين بدأت عملي، وكان أمرًا شنيعًا. إيّاك تأشير ”Discourage Search Engines“ بنفسك ودرّبها -أي نفسك- لتكون يقظة وواعية لهذا الخيار في المواقع المنشورة التي تعمل عليها. الوقاية مهما حصل وفي أيّ زمان ومكان، لا تؤشّر ”Discourage Search Engines“. لو كنت مالكًا لأحد المواقع فاطلب من المطوّر صنع ”صفحة قريبًا“ تُخفي المحتوى كما يُخفيه الخيار ذاك. كما وتيقّظ إلى ذلك التنبيه الصغير بأنه ”تمّ منع محركات البحث من أرشفة موقعك“ (Search Engines Discouraged). 2. عدم تحويل الروابط 301 حين تغيير الروابط الدائمة إن كان موقعك يحظى بحركة بحث مهولة، فعليك أن تتيقّظ لأمر آخر: تغيّرت الروابط الدائمة؟ نسبة التوتّر: ارتفعي! يشير مصطلح ”الروابط الدائمة“ إلى روابط منشوراتك وصفحاتك ”الدائمة“. هذه بعض التغييرات عليها: تنتقل صفحة النبذة من http://mysite.com/about إلى http://mysite.com/about-us. تنتقل المدوّنات من نسق http://mysite.com/article-title إلى نسق http://mysite.com/month/year/article-title. ينتقل موقعك من http://mysite.com إلى https://mysite.com. ينتقل موقعك من https://mysite.com إلى https://mynewsite.com. تكفي هذه الأمثلة، وتذكّر: التغييرات على الروابط الدائمة تحدث متى ما تغيّرت عنواين الروابط الحاليّة، ولأيّ سبب كان. وهذه ”العناوين“ هي حقًا ما يستعمله جوجل لسرد المحتوى في موقعك، تمامًا كما عنوان منزلك حيث يصل المرء إليه، وعنوان بريدك الإلكتروني حيث تصل الرسائل إليه. كيف تحدث المشكلة لنعرف كيف يمكن أن تقتل التغييرات على الروابط الدائمة سيو موقعك، نطرح السؤال: ماذا يحدث إن تغيّر أحد العناوين ولم يعرف جوجل بهذا التغيير؟ الإجابة: العنوان القديم ”يضيع“، فما من محتوًى فيه بعد الآن. وجوجل لا يعلم أين ذهب هذا المحتوى، فلا يبالي لذلك وينقل صفحات المواقع الأخرى أعلى التقييمات – المواقع التي فيها الكلمات المفتاحية التي كانت موجودة في العنوان ”الضائع“. يمكن أن تحدث هذه المشكلة في داخل موقع ووردبريس، أو بينما تنقل موقعًا من نظام آخر إلى ووردبريس. لو كنت في موقع ووردبريس موجود فعلًا فيمكن أن تغيّر أنت مالك الموقع أو أحد مطوّريك – يمكن أن تغيّر بنية روابط الموقع الدائمة، أو تغيّر رابط أحد المنشورات (أو أكثر) وتكون ضحيّة لإحدى المزايا غير المتّسقة لووردبريس بخصوص طريقة تحويله للروابط هذه. (فمثلًا، يحوّل ووردبريس تلقائيًا المنشورات ويترك الصفحات، أي أنّك إن لم تحوّلها يدويًا فستضيع تقييمات صفحاتك.) أمّا عند الانتقال من نظام آخر إلى ووردبريس، فيمكن أن ينسى المطوّر (أو لا يعلم) بأنّ عليه تحويل الروابط القديمة: about-us.html إلى store/product-name.asp، أو store/product-name.asp إلى /shop/product-name/، وهكذا دواليك. في هذه الحال ستعطب كل الروابط القديمة، وهذه مشكلة عامّة وشنيعة جدًا. لو أردت معرفة ما على المطوّر إدراكه بخصوص الشغل التقني وراء تحويل الروابط الدائمة، فقد فصّلت هذا أدناه: تبعات المشكلة تختلف تبعات هذه المشكلة حسب مقدار المحتوى الذي لم يُحوّل وكم هو مهمّ هو. التبعة المتوسّطة لهذه المشكلة هي أن تفقد ترتيب بعض العناوين غير المهمّة كثيرًا. مثلًا تنتقل /privacy-policy/ إلى /our-privacy-policy/، يأتي جوجل ويُدرك الرابط بعد أسابيع قليلة، مع ذلك فذاك غير مهمّ إذ أنّ الصفحة القديمة لن تكون بتقييم أصلًا (من يريد صفحة بيان الخصوصية؟!). أمّا التبعة الأشدّ وقعًا هي أنّك تملك موقعًا معروفًا قديمًا وتعطب أو تضيع أو ينسى جوجل روابطها كلّها. إن تركت الأمر دون علاج فأنت ببساطة تبدأ موقعك من الصّفر بنظر السيو. فكلّ ”العناوين“ الجيّدة التي وَثِق بها جوجل اختفت، والآن عليك أن تكسب ثقته من جديد بعناوين جديدة كليًا لا تترابط مع القديمة بأيّ شكل من الأشكال. يمكن للحالة الثانية أن ترمي بمبيعات إحدى المشاريع التجارية الأكثر ازدهارًا إلى القعر، إلى الصفر. هذه هي الحال التي يواجهها أحد زبائني كما وضّحت في بداية المقال. أكرّر، لو كنت تراقب من حركة الناس في الموقع بانتظام ستلاحظ تأثير هذا بسرعة خلال أسبوع أو اثنين، وسترى انخفاض الحركة بشكل عام 50 بالمئة أو أكثر. ولو دقّقت أكثر فسترى أنّ الحركة من عمليات البحث الطبيعيّة صارت فجأة صفرًا أو ما يقارب الصفر. الوقاية حتّى لو لم تدرك التقاصيل التقنيّة فعليك أن تكون دومًا يقظًا لأيّ من أراد تغيير روابط موقعك. هذا اختبار بسيط يمكنك إجرائه: اكتب الرابط الذي سيتغيّر على ورقة (أو عددًا كبيرًا منها) وركّز على صفحات موقعك الرئيسية، أي تلك التي فيها كلمات مفتاحية تساعد على ترتيب الموقع مثل أقوى المقالات تأثيرًا أو صفحات المنتجات الرئيسية في الموقع. بعد أن تحدث التغييرات، اكتب الروابط القديمة وانظر لو ظهرت الصفحات الجديدة تلقائيًا. لو ظهرت فأنت في أمان. لو لم تظهر واحدة أو أكثر وظهرت صفحة خطأ (أكان فيها ”404“ أم لا)، فلا تسكت إلّا حين حلّ المشكلة. والأفضل لو كان هناك شخصين تقنيّين يفحصان التحويلات فيضمنان أنّ التغييرات حصلت كما يجب. بصفة عامّة، تحقّق مرة واثنتان من أيّ تغيير يحصل على الروابط الدائمة. للأسف فتحويلات 301 معقّدة: فمثلًا مصاعب إصدارات http وhttps من الموقع، وإصدارات www وغير www من الموقع والشرطات المائلة النهائية تحتاج اطّلاعًا واسعًا وتيقّظًا لتعمل كما يجب. لهذا يفضّل جلب شخصين تقنيّين لذلك. فالمئة دولار التي ستدفعها لتوظّف مستقلًا مدرّبًا يفحص تحويلات 301 أثناء الترحيل سيجنّبك مئات وآلاف بل ربّما ملايين الدولارات التي ستخسرها في تقييمات البحث التي حافظ عليها الموقع. 3. إعادة كتابة المحتوى بلا اكتراث لكلماته المفتاحيّة هذه المشكلة عامّة وشاملة أكثر. صحيح أنّ المشكلتين الأولى والثانية يمكن أن يقتلا سيو الموقع، إلّا أنّ هذه تسمّمه لا أكثر. بعبارة أخرى، تظهر تبعات هذه المشكلة ببطئ أكثر وعلى نحو أقلّ، ويمكن أن يكون حلّها أسهل. ولكنّ ملاحظتها وتحرّيها أصعب بكثير، ويمكن ألّا يعلم مالك الموقع تمامًا ما يجري، أو لا يعلما بوجود مشكلة من الأساس. كيف تحدث المشكلة كيف تحدث هذه؟ كالآتي: تعيد تطوير موقع يعتمد في تقييماته على كلمات مفتاحيّة مهمّة. لا يكترث الموقع الجديد بالطريقة التي كان يُقيّم بها المحتوى القديم. يتوقّف (بمرور الوقت) تقييم الموقع على هذه الكلمات. كيف يحدث هذا؟ بطرق شتّى فظيعة. أمّا أرجحها وأجسمها هي أن المطوّر الجديد أعاد كتابة كلّ محتوى الموقع بنفسه بلا أن يهتمّ، أو يفّكر ويأمل بأداء الموقع الحالي في عمليات البحث. فلنرى معًا هذا المثال. لنقل أنّ الكلمة المفتاحيّة الأهمّ في الموقع هي ”المزارع الطبيعيّة اليابانيّة“. ولكنّ المطور لم يبحث في الكلمات المفتاحية، كما وأنّه يحبّ عبارة ”الغابات الاستوائيّة“ لنفس المنتجات بتلك الكلمة. ورأى بأنّ على الموقع استقطاب كلّ من هو في شرق آسيا، وليس فقط اليابان. وهكذا، يغيّر كلّ مرّة تتكرّر فيها ”المزارع الطبيعيّة اليابانيّة“ في الموقع إلى ”الغابات الاستوائيّة الآسيويّة“. وبعدها تضيع حركة الناس (من عمليّات البحث الطبيعيّة) في عمق الغابة. وطبعًا هذه ليست الطريقة الوحيدة بل هناك طرائق عدّة وشتّى يمكن أن يُقتل بها سيو الموقع، وهي تتخطّى الطرق الصحيحة ليبقى فيه سليمًا - تتخطّاها بمئات بل آلاف الطرائق. فلنقل مثلًا أنّ أغلب المحتوى بقي كما هو، ولكنّك بدّلت ترويسات النصوص في الموقع مثل <h1> و<h2> وعوّضتها لتكون رسومات جميلة جذّابة مصمّمة بِحِرفيّة عالية، وفيها نفس النص، لكنّك لم تضع وسوم alt لهذه الصور. بهذا سيكون احتمال تعرّض الموقع لنكسة سيو عالٍ، ولن يعرف أحدٌ أسباب ذلك إلّا المطوّرين الدارسين للأمر أو محترفي السيو. تبعات المشكلة هنا، تعتمد التبعات على طريقة تقييم المحتوى السابقة، إضافةً إلى مدى سوء المحتوى الجديد (حسب السيو) موازنةً بالقديم. (طبعًا، لو كان المحتوى الجديد أفضل من القديم فسيكون هذا الفرق حسنًا! وهذا ما نأمله… إلّا لو كنت تتبّع استراتيجية محتوى تعتمد على السيو وانتقل إلى أخرى لا تعتمد عليه، هنا لن يكون التحسين حسنًا أبدًا. لحظة، تحسين؟) يمكن ألّا يُلحظ الفرق أبدًا لو قلّ مقدار كلمات صفحة ”النبذة“ المفتاحية بسبب إعادة كتابتها بلا اكتراث، ويمكن أن يكون الفرق صاعقًا لو قرّر أحد بأنّ أكثر منتجات السوق الإلكتروني مبيعًا لا تحتاج بالضرورة إلى عنوان أو وصف، بل صور فقط… وهكذا ينزل تقييم كل منتج ستّين مرّة. كما أنّه من الصعب التكهّن بمدى تعرّض الموقع لهذه الأمور، أكان سريعًا أو بنحوٍ أبطأ. ستأتي يومًا وترى بأنّ ”التقييم صار صعبًا“ فجأةً دون سبب، ولا تدري أكان هذا بسبب عبارة البحث التي يزيد عدد المتنافسين عليها، أو أكان ثمّة خطب في الموقع تقنيًا (وسوم <title>؟ وسوم schema.org؟ سرعة الموقع، أو حتّى ”ما هذا الذي يجري بموقعي؟!“. وكأنّه يتجرّع السمّ قطرة قطرة ولا يقدر أيًّا من العامّة تشخيص علتّه. ولهذا السبب بالذات لزامٌ عليك أن تتجنّب الوقوع في هذا الوحل من الأساس. الوقاية نصيحتي هنا لتتجنّب هذه الكوارث البيئيّة هي بأنّ توظّف كاتبي محتوى مهرة يفهمون السيو. لو كان المحتوى الحالي ذا تقييم محترم في البحث فيجب أن تكون التغييرات كلّها بلا استثناء على يد شخص يعرف السيو قلبًا وقالبًا. لو لم يكن الشخص الذي يكتب محتوى موقعك محترفًا في السيو، فعليه أن يكون على اطّلاع كافٍ به كي يكون اختصاصه لاحقًا لو أراد. ولكن للأسف فالسيو نفسه (كما وتطوير الوِب) هي وظائف ينقصها الرقابة الجيدة وليست مستقرّة، وبذلك فالمعيار أنزل بكثير ممّا يجب أن يكون. وهنا يدخل الإثبات بالتعارف إلى الموضوع. فعليك أن تقبل بكاتب محتوًى رشّحه أحد الثِّقات بأنّ الكاتب يفهم السيو جيدًا، أكان من رشّحه لك مطوّرًا أو مسوّقًا تقنيًا أو كاتب إعلانات أو مالك إحدى المواقع أو سيو آخر أو أيًا كان على هذه البسيطة. إن لم تعرف مَن يمكنه أن يرشّح لك شخصًا فابحث عن سيو ذو سمعة محترمة وأجرٍ عالٍ وادفع ثمن ساعة من وقته فيتحدّث مع الشخص الذي سيدقّق الموقع كي يتأكّد أكان الشخص أهلًا بالمهمة أم لا. أو يمكنك سؤاله (هذا ذو الأجر العالي) لو يعرف أحدًا يحوّلك إليه. ابتعد عن متاهات السيو! توظيف مطوّري الوِب عمليّة فيها خطورة. فأولئك الذي يُعيدون تصميم مطعمك لا يحرقوه أبدًا، على العكس تمامًا مع مطوّري الوِب! قصّتان في أسبوع واحد عن مشاريع تجارية مزدهرة رجعت شهورًا أو أعوامًا حتّى، والسبب أخطاء المطوّرين. آمل أن تكون الآن على دراية أكبر بكوارث السيو التي عليك تجنّبها أكنت مالكًا لأحد المواقع أو مطوّرًا. كما آمل أن تكون دائمًا مُدركًا لما سيحصل من أمور آتية. خُذها من أخطاء مجرّب: لن تكسب جائزة ”لا تخف أنا ذكي وسأكون على خير حال“ لو أخذت مسؤولية سيو المشاريع التجارية الحقّة على الإنترنت. وأخيرًا، أخطّط فعلًا لمقال يواصل على هذا يشرح ما تفعل لو تضرّر موقعك من هذه المشاكل أعلاه، فترقّبه. ما هي أخطاء السيو التي أضرّت بك أو بأحد زبائنك؟ شاركنا النقاش! ترجمة -وبتصرف- للمقال ‎“My Developer Ruined My Site’s SEO”: Three Huge SEO Mistakes and How to Avoid Them لصاحبه Fred Meyer
  2. يتطلب كلّ موقع الكتروني استضافة وذلك ليكون متاحًا للزوار عبر شبكة الإنترنت. يُدرك المصممون والمدونون أهمية ذلك تمامًا وأغلبهم يستخدم المواقع الإلكترونية لنشر أعمالهم وعلاماتهم التجارية. عندما يتعلق الأمر باختيار مزود استضافة المواقع فهنالك العديد من الخيارات المتاحة بعضها مجاني ويوفر لك ميزات محدودة جدًا بينما البعض الأخر قد يكلفك القليل من المال ولكن يقدم ميزات غير محدودة. وأنا أفضل خدمات لاستضافة المدفوعة وذلك لتوفيرها العديد من التسهيلات بالموازنة مع المزودات الرخيصة أو المجانية. 1. BlueHost وهو أحد الشركات الرائدة في تقديم خدمات استضافة المواقع والّتي توفر استضافة ووردبريس ممتازة وموصّى بها من قِبل شركة ووردبريس الرسمية، وتستطيع إدارة ازدياد عدد الزوار إلى موقعك بدون إبطائه. عروض الشركة: استضافة مشتركة - يعدّ خيارًا مناسبًا للمصممين والمدونين الّذين لا يتوقعون ملايين الزيارات شهريًا. استضافة VPS والاستضافة المخصصة - تعدّ خيارًا مناسبًا للأعمال الّتي تحتاج المزيد من موارد المخدم. ويوجد خبراء جاهزين لمساعدتك على مدار ساعة وطيلة أيام الأسبوع. استضافة الموزّعين - يعدّ هذا الخيار مناسبًا للأشخاص الّذين يعملون في مجال بيع خدمات الاستضافة حيث يمكنك شراؤها واستخدام مساحة التخزين في القرص الصلب المخصصة وعرض النطاق (Bandwidth) لاستضافة مواقع العملاء. وهذه بعض الميزات فيما يخص خيار المصممين والمدونين وتعرض الشركة العديد من الميزات منها: استضافة نطاقات (Domains) بشكل غير محدود. مساحة استضافة بشكل غير محدودة. شهادة SSL مجانية. استقبال 100 دولار أمريكي كهدية من شركة غوغل و100 من شركة مايكروسوفت عند إنفاقك 25 دولار أمريكي في حسابك الجديد على منصاتهم الإعلانية. تراسل بيانات بشكل غير محدود. حسابات بريد إلكتروني بشكل غير محدود. نطاق (Domain) مجاني مخصص. يمكنك الحصول على هذه الميزات والكثير غيرها الموجودة في الخطة الاستضافة المشتركة مقابل 2.95 دولار أمريكي شهريًا، ومن ناحية أخرى استضافة المواقع المخصصة غالية بعض الشيء ولكنها توفر المزيد من موارد المخدم مثل: وحدة معالجة مركزية 4×2.3 غيغا هرتز. ذاكرة وصول عشوائي (RAM) بسعة 4 غيغا بايت. سعة تخزين 500 غيغا بايت (منسوخة احتياطيًا في حال فشل النسخة الأصلية). 5 تيرا بايت عرض النطاق (Bandwidth). 3 عناوين IP. شهادة SSL مجانية. اسم نطاق مجاني. دعم فني على مدار الساعة وطيلة أيام الأسبوع. ضمان استرداد أموالك خلال 30 يوم. تبلغ كلفة الاستضافة المخصصة القياسية 79.99 دولار أمريكي شهريًا. يمكنك أيضًا الحصول على خطة المتاجر الإلكترونية والّتي تتيح مجموعة من المميزات الّتي يحتاجها جميع أصحاب المتاجر الإلكترونية ومن بين المميزات المتوفرة في جميع خطط المتاجر الإلكترونية هي: اسم نطاق مجاني. تثبيت تلقائي لمتجر WooCommerce. شهادة SSL مجانية. تراسل بيانات بشكل غير محدود. استقبال 100 دولار أمريكي كهدية من شركة غوغل و100 من شركة مايكروسوفت عند إنفاقك 25 دولار أمريكي في حسابك الجديد على منصاتهم الإعلانية. عنوان IP مخصص. ويمكنك الحصول على الخطة الابتدائية والّتي تأتي مع مميزات أخرى مثل: استضافة متجر واحد. سعة تخزين تبلغ 100 غيغا بايت. مجموعة من القوالب المجانية الجاهزة للتركيب. حماية خصوصية النطاق. مكالمة مجانية للمساعدة في التثبيت. شهر كامل مجانًا لبرنامج أوفيس 365 Mailbox. كل هذه المميزات مقابل 6.95 دولار أمريكي شهريًا للخطة الابتدائية ويوجد ميزات أخرى في الخطط الأخرى المتوفرة للمتاجر الإلكترونية. 2. WP Engine تعدّ هذه الشركة الخيار الإحترافي لمواقع الووردبريس حيث تمنحك الشركة خادم استضافة لا ينقطع مع القدرة على التعامل مع ازدياد عدد الزوار، ولا داعي للقلق بشأن الحماية لأنه محمي جيدًا من الاختراق. مع خدمة عملاء قوية وسريعة بنفس الوقت تجعل هذه الشركة مرشحًا قويًا جدًا لخدمات استضافة المواقع ومع فريق من الخبراء في الووردبريس ستشعر بالإطمئنان بشأن أي مشكلة قد تصيب موقعك. وتعد هذه الشركة خيارًا جيدًا للمدونين والمصممين الّذين يبحثون عن استضافة بسعر معقول. جميع الخطط المُقدمة من قبل هذه الشركة تأتي مع ضمان استرداد أموالك بالكامل خلال 60 يومًا إذا لم تعجبك الخدمة أو المنصة وتشمل بعض عروضهم ما يلي: النسخ الاحتياطي اليومي. استعادة النسخ الاحتياطي بنقرة زر واحدة. أمان عالي الجودة. تفعيل التخزين المؤقت (Caching) بشكل تلقائي. إلغاء الخدمة بشكل مجاني خلال 60 يومًا. وحاليًا تقدم الشركة خطة للشركات الناشئة بمبلغ 35.00 دولار أمريكي شهريًا وهي تشمل ما يلي: تثبيت موقع ووردبريس عدد 1. 25000 زيارة للموقع شهريًا. تبادل بيانات 50 غيغا بايت. سعة التخزين تساوي 10 غيغا بايت. أكثر من 35 قالب جاهز للتثبيت. بيئة متكاملة لتطوير معتمدة على إطار العمل Genesis. دعم فني على مدار الساعة وطيلة أيام الأسبوع. قابلية نقل الموقع على إستضافة أخرى. إصدار PHP 7.3. خوادم موزعة CDN (وهي شبكة توصيل المحتوى تتألف من مجموعة من الخوادم المتزامنة والموزعة على شبكة الانترنت في أماكن جغرافية مختلفة، تحتوي على نسخ من المواقع الّتي تضيفها شركة الإستضافة، وفي حال رغب المستخدم في الوصول لمحتوى على الانترنت مدعوم بهذه الميزة فإن الشبكة ستقوم بارساله لأقرب خادم لموقعة الجغرافي يحتوى على نسخة من المحتوى المطلوب) من أجل سرعة الوصول من كافة المناطق. أداة تقيس مدى تفاعل صفحة الويب. تشمل الخطط الأخرى ما يلي: الخطة الاحترافية - تتضمن نفس ميزات الخطة الشخصية مع مزيد من موارد الخادم وتبدأ أسعارها من 99.00 دولار أمريكي شهريًا. خطة الأعمال (Business) - تأتي بنفس الميزات مع مزيد من موارد الخادم المتاحة في الخطة الاحترافية وذلك لاستضافة مواقع الأعمال الكبيرة وتبدأ أسعارها 249.00 دولار أمريكي شهريًا. 3. Media Temple تقدم هذه الشركة تجربة استضافة من الطراز العالمي وخصوصًا للمصممين والمدونين ومهما يكن حجم موقعك فإن الشركة تستطيع التعامل معه. جميع خدمة الشركة تتناسب مع سعر الخدمة. يوجد العديد من الخيارات والخطط المتاحة والّتي تختلف من حيث السعر والمميزات والسعة وتوفر كل خطة قابلية الترقية للخطة الأعلى منها وذلك لكي تتناسب مع نمو موقعك وتشمل الخطط الّتي تقدمها هذه الشركة ما يلي: خطة الشبكة (Grid): وهي استضافة مشتركة. خطة DV Managed. خطة DV Developer. خطة DV Enterprise. خطة Managed WordPress. وعندما نتحدث عن المصممين والمدونين فإن أفضل خطة تناسبهم هي خطة Grid وهي تتكامل بشكل مثالي مع الووردبريس مع العديد من الفوائد للمبتدئين ومن بعض هذه الميزات: استضافة 100 موقع. عرض نطاق (Bandwidth) يصل إلى 1 تيرا بايت. إمكانية تخزين قواعد البيانات بعدد يصل 100 قاعدة. سعة تخزين تصل إلى 20 غيغا بايت. 1000 حساب بريد الكتروني. تقديم الدعم الفني على مدار الساعة وطيلة أيام الأسبوع وعلى مدار السنة. كلّ هذه الميزات متوفرة بسعر 20 دولار أمريكي شهريًا. وتعدّ المنصة سهلة الاستخدام ويمكنك ترقية الخطة متى تشاء. وبعض الخطط المطروحة الأخرى مثل خطة المطورين (DV Developer) والّتي تبدأ بمبلغ 30 دولار أمريكي وخطة المدراء (DV Managed) تبدأ بمبلغ 55 دولار شهريًا. 4. Arvixe هي شركة استضافة معروفة لدى أغلب المطورين والمصممين والمدونين.أفضل ميزات هذه الشركة هي الموثوقية والجودة وتوفرها بأسعار معقولة. هناك العديد من الخطط الّتي تقدمها هذه الشركة للمطورين والمصممين من ضمنها: الخطط الشخصية خطط الأعمال خطط الموزّعين توجد أيضًا خوادم VPS وخوادم مخصصة تعمل على أنظمة التشغيل Windows و Linux إذا كنت تبحث عن أداة بسيطة تستطيع تحمّل ازدياد عدد الزوار على موقعك والتأكد من أن الموقع لا يزال متوفر وفي أي وقت فاطلب خدمات هذه الشركة. من خلال الاستضافة المشتركة الممتازة، يمكن للمصممين والمدونين أن يرتاحوا حيال التعامل مع الزيارات لمواقعهم على الإنترنت وزيادة نمو هذه المواقع. توفر هذه الاستضافة ميزات مختلفة بما في ذلك: سعة التخزين غير محدودة. تناقل بيانات غير محدود. حسابات بريد إلكتروني غير محدودة. عدد قواعد بيانات غير محدود. اسم نطاق مجاني. أداة مجانية لبناء المواقع. متجر إلكتروني مجاني. لوحة تحكم سهلة. تقديم الدعم الفني على مدار الساعة وطيلة أيام الأسبوع وعلى مدار السنة. كل هذه الميزات والكثير غيرها ستكلفك 7 دولار أمريكي شهريًا فقط. مع ضمان عدم وجود رسوم مخفيّة، يمكنك أيضًا الحصول على ضمان استرداد الأموال خلال 60 يومًا في حالة عدم رضاك عن المنصة. الخطط الأخرى تشمل: استضافة الأعمال مقابل مبلغ 25 دولار أمريكي شهريًا. استضافة الموزّعين مقابل مبلغ 23 دولار أمريكي شهريًا. استضافة VPS مقابل مبلغ 43 دولار أمريكي شهريًا. 5. HostGator تعدّ هذه الشركة واحدة من أفضل مواقع الاستضافة وتشتهر بدعم العملاء على مدار الساعة وطيلة أيام الأسبوع، وهو ما يفضله العديد من المصممين والمدونين. وتقدم خدماتها بأسعار معقولة جدًا، تقدم خطط استضافة تتضمن: استضافة مشتركة. استضافة الموزّعين. استضافة VPS والخطط المخصصة. تم تصميمها لتعمل بشكل مثالي مع المبتدئين والمحترفين. وتقدم ميزة نقل الاستضافة بشكل سهل للغاية وعندما تنقل من مضيف إلى شركة HostGator فإنها توفر لك المميزات التالية: نقل نطاق مجانًا. نقل الملفات مجانًا. نقل قاعدة البيانات مجانًا. نقل الموقع مجانًا. تشمل الميزات الّتي تقدمها الشركة لمستخدميها: سعة التخزين وعرض نطاق غير محدود. لوحة تحكم سهلة. تثبيت سكربت بنقرة واحدة. دعم فني على مدار الساعة وطيلة أيام الأسبوع. يمكنك الحصول على كلّ هذه الميزات بسعر 3.96 دولار شهريًا. الخطط الأخرى تتضمن: استضافة الموزّعين بمبلغ يبدأ من 19.95 دولار أمريكي شهريًا. استضافة مخصصة لمواقع الووردبريس بمبلغ يبدأ من 5.95 دولار أمريكي شهريًا. استضافة VPS بمبلغ يبدأ من 29.95 دولارًا أمريكي للشهر الأول. خوادم مخصصة تبدأ من 119 دولار أمريكي للشهر الأول. توفر هذه الشركة ضمان وقت تشغيل المخدم بنسبة 99.9 ٪ وضمان استعادة الأموال لمدة 45 يومًا أيضًا. 6. GoDaddy هي واحدة من أكثر شركات شهرةً في مجال استضافة المواقع، كل مصمم ومطور يعرف ذلك جيدًا، وهي الخيار الأول لدى المصممين. تقدم الخدمة ميزات كثيرة للمبتدئين والخبراء. تعرف الشركة مدى أهمية موقعك الويب بالنسبة لك، لذا فإنها تعتني به جيدًا وتهتم بكلّ شيء من مدير الملفات ومدير النطاق وإدارة قواعد البيانات والّذي يعدّ رائعًا وسهل الاستخدام للغاية ويمكنك الحصول على الدعم الفني والمساعدة الّتي تحتاجها من خلال فريق الدعم الّذي يعمل على مدار الساعة وطيلة أيام الأسبوع ويمكنك التواصل معهم عبر الهاتف أو البريد الإلكتروني. ومع ذلك، فإن إدارة ملايين النطاقات تجعل الدعم أبطأ قليلًا ولكن فريق الدعم سريع الاستجابة دائمًا ويتم حل الشكاوى عادةً خلال 24 ساعة فقط. وتشمل الميزات الّتي تقدمها هذه الشركة لكل خطة: نطاق مجاني بشرط شراء الخطة السنوية. بريد الكتروني مجاني. التثبيت بنقرة واحدة لأكثر من 125 قالب مجاني. عرض نطاق غير محدود. سعة تخزين قواعد البيانات 1 غيغا. لوحة تحكم سهلة الاستخدام ومرنة. حماية ومراقبة على مدار الساعة وطيلة أيام الأسبوع لهجمات حجب الخدمة DDoS والحماية منها. على الرغم من توفر هذه الميزات بالإضافة للكثير غيرها في كل خطة، إلا أن الأسعار تختلف من حيث التخزين وعدد المواقع المستضافة. يمكنك استضافة موقع ويب فردي بمبلغ 5.99 دولار أمريكي للشهر الأول مع سعة تخزين 100 غيغا بايت لاستضافة عدد مواقع غير محدود وبسعة تخزين غير محدودة يجب عليك دفع 7.99 دولار أمريكي للشهر الأول. الخطة الأخرى تشمل استضافة مدونة أو موقع ووردبريس يبدأ من 6.99 دولار أمريكي شهريًا. 7. Eleven2 تعدّ هذه الشركة من الشركات الّتي يُنصح بها بسبب جودة الخدمة والدعم والتجهيزات والميزات ووقت التشغيل.وأغلب المصممين والمدونين يفضلون الاستضافة المشتركة بسبب أسعارها المعقولة جدًا. وتوفر أداة مجانية لمساعدتك في إنشاء موقع متميز ومتكامل في دقائق معدودة، ويمكنك إدارة موقعك بسهولة باستخدام أدوات وميزات لوحة التحكم القياسية cPanel. مع دعم فني للعملاء، فهي متوفرة على مدار الساعة وطيلة أيام الأسبوع لمساعدتك. كما أنها توفر ميزة فريدة للدردشة المباشرة الّتي تمكنك من الدردشة مع الخبراء حول مسائل استضافة الموقع الخاص بك وضمان وقت تشغيل المخدم بنسبة 99.9 ٪. إنها بالفعل شركة استضافة مُتقنة. وتقدم هذه الشركة ميزات وفقًا لخططها المختلفة الّتي تكون إما شهرية أو سنوية. تتوفر خطة S-200 القياسية مقابل 7 دولارات أمريكية شهريًا وتشمل: مساحة تخزين 250 غيغا بايت. عرض نطاق 20 تيرا بايت شهريًا. مجالات (Domains) غير محدودة. ضبط الإعدادات بشكل فوري. عدد قواعد بيانات غير محدود. امكانية النسخ الاحتياطي. ضمان استرداد الأموال خلال 60 يومًا. تقدم هذه الشركة العديد من الخطط الأخرى الّتي ستناسب احتياجاتك حتمًا. تشمل الخطط الأخرى: خطة S-300 مقابل 14 دولار شهريًا مع سعة تخزين 500 غيغا بايت وعرض النطاق 40 تيرا بايت شهريًا. خطة R-100 للبائعين مقابل 13.97 دولار شهريًا مع سعة تخزين 100 غيغا بايت وعرض النطاق 1 تيرا بايت شهريًا. خطة R-200 للبائعين مقابل 24.47 دولار شهريًا مع سعة تخزين 200 غيغا بايت وعرض النطاق 2 تيرا بايت شهريًا. خطة R-300 للبائعين مقابل 34.97 دولار شهريًا مع سعة تخزين 300 غيغا بايت وعرض النطاق 3 تيرا بايت شهريًا. تقدم أيضًا الشركة خطة استضافة سحابية والّتي تعدّ من الخطط الرخيصة نسبيًا بالموازنة مع خدمات أمازون السحابية أو خدمات مايكروسوفت. وتقدم الاستضافة السحابية الخدمات التالية: منصة سريعة جدًا باستخدام حاويات لينكس مع أقراص صلبة من نوع SSD. نسخ احتياطي يومي لضمان عدم خسارة أي جزء من بياناتك. فريق من المهندسين يعملون على صيانة الخدمة السحابية لضمان عدم توقفها. عدد من المراكز السحابية موزعة على مختلف الدول. دعم فني سريع جدًا مع سرعة رد تبلغ 10 دقائق فقط. تقدم كل هذه الخدمات مقابل 25 دولار شهريًا مع سعة تخزين 125 غيغا بايت وعرض النطاق 10 تيرا بايت شهريًا. 8. Fatcow تعدّ خيارًا جيدًا للمصممين والمدونين الّذين بحوزتهم رأس مال قليل أو الّذين يطلقون الموقع الإلكتروني لأغراض شخصية. وهي تحافظ على خدمات وميزات موقعك يعمل طول الوقت وبلا انقطاع، يجد الناس أنها موثوقة وودية للغاية. تتأكد الشركة من حصول كلّ عميل على موقع متاح دائما عبر الشبكة وغير متقطع بمساعدة النسخ الاحتياطي للخادم يوميًا. خدمة العملاء موثوقة جدًا ومتاحة على مدار الساعة وطيلة أيام الأسبوع ويمكنك أيضًا التواصل معهم عبر البريد الإلكتروني. وتقدم الشركة برامج تعليمية ومكتبة لأكثر الأسئلة شيوعًا والأجوبة عليها. وتشمل حلول الاستضافة الّتي تقدمها ما يلي: خطة Fatcow. استضافة ووردبريس. حجز دومين. استضافة VPS. استضافة مخصصة. تسجيل نطاقات. مجموعة أيقونات Farm-Fresh. تشمل الميزات الّتي تقدمها: سعة تخزين غير محدودة. عرض النطاق غير محدود. ضمان التشغيل والمتابعة بنسبة 90%. قاعدة بيانات MySQL غير محدودة. استضافة نطاقات بشكل غير محدود. صندوق بريد نوع POP غير محدود. ضمان استرداد المال خلال 30 يوم. استقبال 100 دولار أمريكي كهدية من شركة مايكروسوفت و 100 دولار أمريكي من شركة غوغل عند إنفاقك 25 دولار أمريكي في حسابك الجديد على إعلانات غوغل أو مايكروسوفت. كل هذه الميزات متوفرة بسعر 4.08 دولار أمريكي شهريًا وأما خطة استضافة مواقع الووردبريس فهي بأقل سعر على الإطلاق وهو 3.75 دولار أمريكي شهريًا. وتشمل الخطط الأخرى: استضافة خوادم VPS الأساسية وتبدأ من 19.99 دولار أمريكي شهريًا وتأتي مع معالج واحد وذاكرة وصول عشوائي بسعة 1 غيغا بايت وسعة تخزين تبلغ 40 غيغا بايت وعرض النطاق 1 تيرا بايت. استضافة خوادم VPS للأعمال وتبدأ من 47.99 دولار أمريكي شهريًا وتأتي مع معالجين وذاكرة وصول عشوائي بسعة 4 غيغا بايت وسعة تخزين تبلغ 90 غيغا بايت وعرض النطاق 3 تيرا بايت. استضافة خوادم VPS المثالية وتبدأ من 79.99 دولار أمريكي شهريًا وتأتي مع 4 معالجات وذاكرة وصول عشوائي بسعة 8 غيغا بايت وسعة تخزين تبلغ 120 غيغا بايت وعرض النطاق 4 تيرا بايت. استضافة مخصصة تبدأ من 119.99 دولار أمريكي شهريًا وتأتي مع معالجين وذاكرة وصول عشوائي بسعة 4 غيغا بايت وسعة تخزين تبلغ 500 غيغا بايت وعرض النطاق 5 تيرا بايت. 9. InMotion Hosting تعدّ هذه الشركة ذائعة الصيت بين الشركات المتوسطة والكبيرة، سواءً أكان موقع أو مدونة تقدم لك الشركة الخدمة الّتي تريدها وتأتي شهرة هذه الشركة من فريق الدعم الفني الحائز على عدة جوائز ويصل وقت تشغيل المخدم إلى 99.9٪. تتعامل الشركة مع احتياجات العمل المتنامية، من الأعمال التجارية الصغيرة إلى مستوى الشركات. تضمن الشركة سرعة جيدة وخدمة عالية مع مراكز بيانات متعددة. توفر ميزة منطقة السرعة القصوى (Max Speed Zone) لخطط VPS ورجال الأعمال والّتي تمكن المستخدمين القريبين من مراكز البيانات في الشركة الاستمتاع بالتصفح أسرع بست مرات من أي شخص أخر. تتأكد الشركة من حصولك اتاحية موقعك بشكل دائم عبر الإنترنت وبدون انقطاع ومع توفر دعم الفني العملاء على مدار الساعة وطيلة أيام الأسبوع. تم تحسين استضافة مواقع الووردبريس بشكل كبير للمدونين وتقدم لك الشركة بعض الميزات الرائعة لجعل مدونتك تنمو بسرعة. تتضمن خدمات الاستضافة: استضافة رجال الأعمال. استضافة رخيصة. استضافة VPS. خوادم مخصصة. استضافة الموزّعين. تشمل الميزات الّتي توفرها الشركة: سعة التخزين غير محدودة عرض النطاق غير محدود. باقة مواقع مجانية بأكثر من 400 مواقع مع ميّزة التثبيت بنقرة واحدة. أقراص التخزين الصلبة من نوع SSD. تقدم لوحة تحكم cPanel & WHM بشكل مجاني. إعلانات مجانية بقيمة 150 دولار أمريكي. اسم نطاق مجاني. ضمان استرداد المال خلال 90 يوم (تشمل خطة استضافة الموزّعين والاستضافة المخصصة والاستضافة المشتركة). هنالك الكثير من الميزات الأخرى المضمنة في الخطة وهي متاحة مقابل 6.39 دولار أمريكي شهريًا. وتشمل الخطط الأخرى استضافة VPS تبدأ من 29.19 دولار أمريكي شهريًا. استضافة مخصصة تبدأ من 105.69 دولار أمريكي شهريًا. استضافة الموزّعين تبدأ من 15.39 دولار أمريكي شهريًا. 10. TMDHosting عندما تقوم بتشغيل موقع أو مدونة مشهورة، فإنك ستحتاج إلى المعرفة بالعديد من الأدوات والمعلومات التسويقية. إن هذه الشركة ستسهل الأمر عليك وستقوم بتشغيل موقع الويب الخاص بك أو مدونة. وتوفر لك وقت تشغيل مضمون بنسبة 99.9٪ في جميع خطط الاستضافة، وتقدم لك أفضل تجربة استضافة وتضمن لك استرداد أموالك لمدة 30 يومًا في حالة عدم رضاك عن المنصة. توفر الشركة أيضًا استضافة للتطبيقات المفتوحة المصدر بما في ذلك استضافة Joomla، واستضافة Magneto …الخ. الميزة الّتي تتفوق بها هذه الشركة على منافسيها هي دعم العملاء السريع على مدار الساعة وطيلة أيام الأسبوع، وسيتم حل استفساراتك في غضون 15 دقيقة. كما تقدم مساعدة على أعلى مستوى مع أحدث التقنيات المتاحة. بالنسبة للمبتدئين، تقدم الشركة برامج تعليمية تساعدك خطوة بخطوة في أي مسألة تتعلق باستضافة المواقع. وتقدم العروض الترويجية بشكل يومي والّتي تكون تحديثات على خطط الاستضافة الحالية وتقدمها بأقل الأسعار للعملاء. خدمات الاستضافة الّتي تقدمها الشركة تشمل: استضافة المواقع. استضافة الموزّعين استضافة VPS استضافة الخدمات السحابية (Cloud). خوادم مخصصة تشمل الميزات المختلفة الّتي توفرها استضافة الشركة اسم نطاق مجاني للأبد. خوادم CloudLinux-powered. سعة التخزين وعدد زيارات غير محدودة. إصدارات PHP متعددة. قواعد بيانات MySQL بشكل غير محدود. ضمان استعادة المال خلال 60 يوم. وهنالك عدة ميزات أخرى مع الحزمة. تتوفر خطة استضافة الويب بمبلغ 2.95 دولار أمريكي شهريًا. والخطط أخرى تشمل: استضافة الموزّعين تبدأ من 19.95 دولار أمريكي شهريًا مع ضمان استعادة المال خلال 30 يوم. استضافة VPS تبدأ من 19.97 دولار أمريكي شهريًا. استضافة سحابية تبدأ من 5.95 دولار أمريكي شهريًا. خوادم مخصصة تبدأ من 229 دولار أمريكي شهريًا. ختامًا إن كل شركات الاستضافة السابقة موصّى بها للمصممين والمدونين، ومع ذلك أنصحك بتصفح كل خطة عن كثب لتقرر أي العروض هي الأفضل بالنسبة لك. ففي بعض الأحيان يكون الدعم الفني للعملاء هو الفارق الوحيد بين الشركات الاستضافة العادية والشركات المتميزة. ترجمة -وبتصرف- للمقال Unbiased Review of the 10 Top Web Hosting Services
  3. يمكن أنْ يكون تطوير موقع ويب بدون الأدوات المناسبة مدعاة للكثير من الإحباط. ستجد أحيانًا أنّك تعمل على برنامج متقدّم جدًّا بالنسبة لمستواك، أو يمكن أن تكون بحاجة للانتقال إلى برنامج موجّه للمحترفين. يتعلّق الأمر بمستوى قدراتك بوصفك مصمّم مواقع، إلّا أنّ برامج التصميم للويب هي - مجملًا - نفسُها سواءٌ كنت مبتدئًا أو مستخدمًا متقدّمًا. الفرقُ الوحيد هو أنّك قد لا تستخدم جميع الميزات المتوفّرة في أداة معيّنة إنْ كنت مستخدمًا مبتدئًا أو بخبرة متوسّطة. تحتاج لاستكشاف ما يستخدمه المحترفون ومتابعة دورات وقراءة مقالات لمعرفة الطريقة التي تجعل تصميماتك أفضل ما يمكن أن تصل إليه. لذا، سنلخّص في هذا المقال تسعةً من برامج التصميم التي تحتاجها أكثر من غيرها، ونشرح مالذي يُستخدَم فيه كلّ واحد منها خلال عمليّة التطوير. ووردبريس ووردبريس هو نظام إدارة محتوى وتدوين بلغت شهرته ومرونته حدًّا جعل ثُلث مواقع الويب الموجودة تستخدمه. تمكن استضافة ووردبريس ذاتيًّا (وبالتالي يكون لديك التحكّم الكامل في موقعك). علاوة على ذلك، فإنّ المنحى التعلّمي لووردبريس سهلٌ مقارنة بمنصّات مثل Weebly وShopify. يتوفّر برنامج ووردبريس مجانًا، لكنْ ستحتاج للدفع مقابل أمور من قبيل اسم النطاق (Domain name)، الاستضافة (Hosting) والقوالب. بالمختصر، تهدف هذه المنصّة الرائعة لبناء مواقع الويب إلى العمل في الخلفيّة وإعطائك فرصة إنشاء صفحات، وتدوينات، وقوالب وغيرها بسهولة. فوتوشوب يشتهر فوتوشوب بتحرير الصوّر والتعديل عليها، إلّا أنّ هذا المحرّر الضخم يصلُح لأي نوع من مشاريع التصميم. يُستخدَم فوتوشوب لإنشاء شعارات لمواقع الويب أو لتصميم نماذج أوليّة لها. ليس غريبًا أن تجد من يستخدم فوتوشوب لإنشاء مخطّط تصميم كامل لموقع ويب، اعتمادًا على نظام الطبقات (Layers) والتصدير الذي يتوفّر عليه فوتوشوب ويوفّر الكثير من الميزات. Sketch يُنظَر إلى برنامج Sketch غالبًا على أساس أنّه إصدار مُبسَّط من فوتوشوب. يعود السبب في ذلك إلى أنّ Sketch يركّز كثيرًا على التصميم للويب، في حين يمكن استخدام فوتوشوب لأي مشروع تصميم. الميزة الأساسيّة لبرنامج Sketch هي آليّة عمله مع التصاميم المتجهيّة (Vectors)، ممّا يجعله رائعًا لتوسعة التصاميم أو تقليصها بدون فقد أي بيانات أثناء العمليّة. علاوةً على ذلك، يمكن اختبار التصميم على الأجهزة الجوّالة مباشرةً من البرنامج. GIMP توجد في GIMP تقريبًا نفس الميزات الموجودة في فوتوشوب. الفرق الأساسي هو أنّ GIMP مجانيّ تماما. يحاجج بعض المصمّمين بالقول إنّ GIMP معقّد الفهم قليلًا، إلّا أنّه منتَج مجانيّ رائع يوفّر ميزات ضروريّة للعمل على تصميم المواقع وتحرير الصوّر. Adobe Dreamweaver يعدّ Dreamweaver مصنعًا لتصميم المواقع، حيث يوجد محرّر شفرة برمجيّة على جانب الشاشة ومعاينة لموقع الويب على الجانب الآخر. يمكنك بهذه الطريقة التعديل على الشفرات البرمجيّة ورؤية النتيجة مباشرة. في حين يركّز فوتوشوب على إنشاء عناصر موقع الويب أو النماذج الأوليّة، فإنّ Dreamweaver ينشئ موقع ويب جاهزًا للعمل. يمكن بنهاية العمليّة تصدير ملفات موقع الويب ووضعها على الخادوم. WAMP الخطوة المواليّة لتصميم موقع باستخدام برنامج مثل ووردبريس أو Dreamweaver هي اختباره، ثم تعديله وفقًا لنتيجة الاختبارات. قد لا ترغب في الدفع مقابل خادوم، فقط لعرض موقع نصف مكتمل على الجمهور. توجد طريقة أفضل، وهي الحصول على خادوم محلّي مثل WAMP. بالمختصر، تشغّل الخادوم على حاسوبك الشخصيّ، وتنشئ أو تختبر موقع الويب كما لو كان موجودًا على الشبكة، وأخيرًا تنقل الملفات إلى الخادوم المتاح للعموم. يعمل برنامج WAMP على أنظمة التشغيل وندوز، ولكن يوجد بديل يعمل على حواسيب Mac وهو MAMP. عجلة الألوان (Color Wheel) من المهمّ جدًّا أن تكون لديك أداة ألوان أثناء تصميم موقع ويب. عجلة الألوان أداة مجانيّة توفّر طريقة لبناء مخطّطات ألوان ذات مظهر متناسق لاستخدامها ضمن موقع الويب. قد تكون لديك فكرة باستخدام لون معيّن في جزء من الموقع، إلّا أنّ المشكلة هي أنّ ألوانًا كثيرة لن تظهر متناسقة مع اللون الرئيسي لموقعك. تأتي عجلة الألوان للتغلّب على هذه المشكلة، إضافة إلى أنّها تساعد في تحديد الرمز الدقيق للون مّا، بدلًا من تخمينه. Adobe Spark أو Canva ظهر برنامج Canva قبل Adobe Spark، لكنّ الاثنين يعملان جيّدًا لتصميم البصريّات الاحترافيّة بأنواعها للاستخدام في شبكات التواصل الاجتماعي، أو منصّات التدوين، أو البطاقات المهنيّة، وغيرها. تختصر الأداتان العمليّة الطويلة لإنشاء موادّ بصريّة من الصفر على فوتوشوب. كما توفّر قوالب احترافيّة كثيرة للاختيّار بينها. بالمختصر، تمكّن غير المصمّمين من إنشاء موادّ بصريّة جميلة للاستخدام على شبكات التواصل الاجتماعي أو على مواقع الويب دون اللجوء إلى فوتوشوب. ترجمة – بتصرّف – للمقال ‎9 Must-Have Web Design Tools and Alternatives لصاحبه Brenda Stokes Barron.
  4. لا تزال التقنية تغيّر مجال خدمة العملاء بصور شتى ومؤثرة على السوق، فقديمًا كان المستهلك يضطر إلى الذهاب إلى المتجر من أجل مشكلة يواجهها أو من أجل استفسار بسيط، فلما جاء الهاتف صار يتحدّث إلى الشركات والمتاجر التي يتعامل معها من خلاله، إلا أنه سرعان ما سئم من المشاكل التي ظهرت جراء ظهور الهاتف. ثم أتى الإنترنت بعد ذلك، ومكّنت الأدواتِ التي صحبَتْهُ أو لحِقَتْ به الشركاتِ من التعامل مع عدة مشاكل في نفس الوقت فصارت أزمنة الردود أقصر، لكن لا زال لتلك الأدوات من بريد أو شبكات اجتماعية جوانبها المظلمة السلبية في التعامل مع العملاء من أجل تقديم الدعم لهم. وأرى أن المحاولة الأخيرة إلى الآن للإجابة عن أسئلة العميل ومشاكله بأسلوب منضبط هي المحادثة الفورية التي تجمع فضائل كلًا من الانترنت والهاتف. ظهرت المحادثات الفورية أول مرة في أواخر الثمانينات من القرن الماضي حين أنشأت Quantum Link برنامج On-Line Messages لحاسوب كومودور 64، ممهدة الطريق لبرامج المحادثات الفورية فيما بعد، ثم تحولت Q-Link إلى ما عرفت بعد ذلك بشركة AOL، شركة الاتصالات الشهيرة. وربما يُنظر إلى المحادثات الفورية على أنها مجرد طريقة يصل بها المستهلك إلى البائع، لكني أرى أنها لم تأخذ حقها في التطبيق في السوق بسبب وجود وسائط أخرى توفر خدمة دعم للعملاء، رغم أنها تزيد من رضى العملاء ومن ثم تزيد من المبيعات. أهمية المحادثات الفورية إن من ينظر للمحادثات الفورية على أنها مجرد تقنية أو وسيلة أخرى يمكن استخدامها للتعامل مع العملاء يتجاهل الفوائد الكثيرة التي تأتي من ورائها، فإن المستخدم مثلًا يراها حلًا أفضل له لأنه لن يضطر إلى الخروج من الموقع من أجل استفسار بسيط طرأ في ذهنه عن المنتج، بل يمكنه الحصول على المساعدة بضغطة زر. وقد قال 51% من المستخدمين أنهم أُعجبوا بالمحادثات الفورية لأنهم يستطيعون تنفيذ أكثر من عملية في نفس الوقت (تسوق – استفسار - ..) أثناء إجراء هذه المحادثة، أما ممثلي الدعم الفني فإن بإمكانهم إجراء أكثر من محادثة نصية في نفس الوقت أيضًا، مما يقلل من نفقات الشركة إذ أنها لن تضطر إلى توظيف المزيد من العاملين، على عكس الشركات التي تستخدم المكالمات الصوتية للدعم الفني. كما أن المحادثات الفورية تحسّن تجربة المستخدم لأنها توفّر توقيتات استجابة منضبطة، فقد وجدت دراسة أن 93% من الشركات لا تتبع قاعدة الخمس دقائق في الرد على العملاء، بل 7% فقط هم من يستجيبون للعملاء في أقل من خمس دقائق. فهذا جدير بالإشارة إليه، إذ أن خمس دقائق تأخير في الرد على الزائر للموقع تتسبب في خسارة الفوز به كعميل بنسبة 400%، وجدير بالذكر أيضًا أن العامل المشترك بين الشركات التي تقع تحت نسبة 7% السابقة هو أنها جميعًا تستخدم المحادثات الفورية. فليس بخافٍ أن خدمة العملاء الممتازة تزيد من المبيعات، فإن 38% من العملاء يقولون أنهم قد اشتروا منتجًا ما نتيجة محادثة فورية مع ممثل للشركة، كما وجدت دراسة للتسويق الإلكتروني أن 63% من العملاء يعودون إلى الموقع الذي أجروْا فيه محادثة فورية. والأهم من كل ذلك أن 92% من العملاء الذين يتسوقون عبر الإنترنت يفضّلون هذه الطريقة في خدمة العملاء، فما أريد قوله هو أن استخدام أدوات للتحدث مباشرة مع العملاء ليس صعبًا، بل هو مربح أيضًا إن نظرت إلى الإحصاءات التي تذكر رضى العملاء عن هذه الطريقة في التعامل معهم. إضافات محادثة فورية لووردبريس 1. Live Chat تُعد هذه الإضافة أفضل الأدوات الموجودة في السوق لتقديم خدمات الدعم الفني للعملاء للمواقع العاملة بووردبريس، وتسمح لأصحاب الموقع أن يتواصلوا مع العملاء من أجهزتهم المكتبية أو اللوحية أو حتى الهواتف، إضافة إلى أنهم لا يحتاجون أن يسجلوا الدخول إلى لوحة تحكم ووردبريس كي يستخدموا الإضافة. وبها خاصية تسمح لممثلي خدمة العملاء أن يرسلوا دعوات محادثة إلى العملاء بُناءً على معايير محددة مثل عدد الصفحات التي زاروها أو الوقت الذي قضوْه على الموقع، إضافة إلى مزايا أخرى مثل المراقبة في الوقت الحقيقي -real time monitoring-، ومشاركة الملفات، ونظام بطاقات يوفر دعمًا على مدار الساعة للعملاء، وهذه الأخيرة تمكّن العملاء من مراسلتك حتى لو لم تكن متاحًا مباشرة على الموقع. وتتكامل live chat مع تطبيقات الطرف الثالث مثل Zendesk أو إحصاءات جوجل أو تطبيقات إدارة العلاقات مع المستخدمين مثل Hubspot وSalesforce، إضافة إلى مواقع الشبكات الاجتماعية مثل فيس بوك وتويتر. وتبدأ أسعار هذه الإضافة من 16$ شهريًا لكل ممثل دعم فني في الشركة، إن دفعت الباقة بشكل سنوي على دفعة واحدة. 2. Zendesk Chat تأتي إضافة Zendesk chat من منصة خدمة العملاء الشهيرة Zendesk، وتتميز بواجهة جميلة التصميم يمكن تغيير القوالب المرئية فيها، إضافة إلى سهولة تثبيتها. كما توفر هذه الإضافة بادئات آلية للمحادثات مع العملاء يمكن تخصيصها (كأن تُفتح محادثةٌ مع العميل حين يبقى فترة معينة على الموقع أو يفتح عددًا معينًا من الصفحات)، وبها ويدجت-widget- مهيأة لتعمل على الهواتف، ولوحة تحليل متطورة. وهناك خطة أسعار مجانية لهذه الإضافة لكنها تسمح بممثل خدمة عملاء واحد فقط، وبمحادثة واحدة مفتوحة، بمعنى أنك ستتعامل مع العملاء واحدًا تلو الآخر. وقد تناسبك هذه الخطة إن كنت المالك الوحيد لموقعك وتقوم بنفسك على تجارتك بدون مساعدة أو توظيف لأحد، أما للاستخدام التجاري فإن خطط الأسعار تبدأ من 14$ شهريًا لكل ممثل دعم فني. 3. Olark يمكنك استخدام هذه الإضافة بعد إضافة شفرة قصيرة إلى القالب الفرعي"child theme” الذي تستخدمه، أو عبر رابطها في موقع ووردبريس. وإليك بعض من مزايا هذه الإضافة: تقارير عن المحادثات تكامل مع برامج Help Desk و CRM مثل Salesforce وZendesk وGroove. تصنيف ممثلي الدعم إلى مجموعات حسب الوظيفة التي يقومون بها. البحث في تاريخ المحادثات، حيث تحصل كل محادثة على تصنيف مفصّل لنشاط المستخدم على الموقع، ويمكن له أن يقيّم المحادثة بعد انتهائها. رؤية ما بداخل سلة تسوق المستخدم. وتبدأ أسعار Olark من 17$ شهريًا لكل ممثل دعم. 4. WP Live Chat Support تهدف إضافة WP Live Chat Support إلى خدمة الشركات التي تبحث عن حلول غير مكلفة للمحادثات الفورية مع العملاء، وتأتي بست قوالب لصندوق المحادثات، وإمكانية نقل صندوق المحادثة في أي مكان في صفحتك، وفتح محادثات مع العملاء دون حد أقصى لعددها، وتخزين محلي للرسائل، وتكامل مع تحليلات جوجل، إضافة إلى أنها لا تحتوي على إعلانات أو روابط، ويمكنك حجب الزوار من عناوين IP بعينها. والإضافة نفسها مجانية، لكن الباقة المدفوعة التي تشتريها لمرة واحدة مقابل 40$ تعطيك مزايا مثل عدد غير محدود من ممثلي الدعم الفني، والردود المحددة مسبقًا، ومعدلات رضى العملاء، والقدرة على إضافة صورة ممثل الدعم الفني لنافذة المحادثة. 5. Tidio Live Chat تعد إضافة Tidio من أسهل الإضافات في تثبيتها، حيث لا تتطلب إلا تفعيلها فقط، وتأتي في ثلاث تصميمات، وتستطيع تعديل اللون إلى ما يناسب هوية شركتك. وتوفر Tidio تطبيقات مخصصة لأجهزة سطح المكتب والهواتف، حيث يمكنك إدارة محادثاتك مباشرة منها، إضافة إلى ودجة تدعم المحادثات المباشرة بأكثر من 140 لغة. ويمكن للمستخدمين أن يصلوا إليك إن لم تكن متاحًا من خلال إرسال أسئلتهم عبر البريد الإلكتروني، ويمكنك الرد عليهم من خلال البريد أيضًا، بل إن Tidio تتكامل مع Zendesk وGetResponse وSalesforce وMailChimp. ويمكنك استخدام باقة مجانية في tidio تدعم ممثل دعم فني واحد ومحادثة واحدة مفتوحة، أما الباقات المدفوعة فتبدأ من 15$ شهريًا لكل ثلاثة موظفين للدعم الفني، ، مع إمكانية إضافة موظفين أكثر بتكلفة 10$ شهريًا للموظف. أو يمكنك اختيار باقة تكلفك 15$ شهريًا لكل 5000 زيارة فريدة للموقع. خاتمة لعلي أكون قد وُفِّقت في بيان هذه الإضافات وتوضيح مزاياها، وأرجو أن تكون قد رأيتَ وجهة نظري في أهمية المحادثات الفورية لكثير من المواقع هذه الأيام -خاصة مواقع التجارة الإلكترونية- حيث تطرأ تساؤلات في أذهان المستخدمين قبل أن يقرروا شراء منتج ما. ولتعلم أن إضافات المحادثة الفورية تقرّب المسافات بين موظفي الشركة وبين المستهلكين ليجيبوا عن أسئلتهم بسرعة، فيزداد ولاؤهم للشركة ومن ثم تزيد مبيعاتهم. وما عليك أن تشغل بالك بشيء بعد تثبيت هذه الإضافات إلا أن تتأكد أن لديك موظفين كفاية للرد على أسئلة العملاء. ترجمة -بتصرف- لمقال How to Setup Live Chat on WordPress لصاحبته Maddy Osman.
  5. بدأنا في الدرس السابق بتخصيص الموقع عبر تعريف الثوابت وإنشاء ملفات header.php و footer.php والعمل على ملفات searchform.php و sidebar.php. الخطوة 2.6- كتابة ملفِّ index بعد إضافة كلِّ تلك الملفّات للقالب، حان الوقت للعمل على الصفحة الرئيسية للموقع، طبعا نحن نتحدّث عن ملفّ index.php. قم بإنشائه داخل مجلّد قالبنا ثم أضف إليه الكود التّالي: <?php get_header(); ?> <?php get_sidebar(); ?> <?php get_footer(); ?> دعنا الآن نلقي نظرةً على رئيسيّة الموقِع لنرى التغييرات التي طرأت عليها. لاحظ أنّه ما عدا القائمة الجانبيّة، فإنّ كلًّا من رأس وتذييل القالب في مكانها المحدّد. لإضافة بعض المحتوى إلى رئيسيّة الموقع افتح ملفّ index.html وقم بنسخ المنطقة المحدّدة بين “blog area section” إلى غاية وسم غلق div ذو الكلاس box-layer align-center page-nav ثمّ ألصِق كلّ ذلك في ملفِّ index.php مباشرةً تحت دالّة get_header ستحصل على شيء مشابه لهذا: <!-- BLOG AREA --> <section> <hr class=&"no-margin&" /> <div class=&"blog-container section-content&"> <div class=&"container&"> <div class=&"row&"> <div class=&"col-md-8&"> <ul class=&"negative-margin&"> <li> <h1><a href=&"single-blog.html&" class=&"gray&">Should I use a Pencil or a Ballpen?</a></h1> By <a href=&"#&">Sam Norton</a> / On July 20, 2014 / <a href=&"#&">Life Hacks</a> <figure> <img class=&"opacity-hover box-layer img-responsive&" src=&"images/thumb1.jpg&" alt=&"Pencil or Ballpen&" /> </figure> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.. <div class=&"btn-margin&"> <a href=&"single-blog.html&" class=&"btn btn-primary&">CONTINUE READING >>> </a> </div> </li> <li> <h1><a href=&"single-blog.html&" class=&"gray&">How to test your patience!</a></h1> By <a href=&"#&">Sam Norton</a> / On July 20, 2014 / <a href=&"#&">Life Tips</a> <figure> <img class=&"box-layer img-responsive&" src=&"images/thumb2.jpg&" alt=&"Pencil or Ballpen&" /> </figure> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.. <div class=&"btn-margin&"> <a href=&"single-blog.html&" class=&"btn btn-primary&">CONTINUE READING >>> </a> </div> </li> </ul> <div class=&"box-layer align-center page-nav&"> <ul class=&"btn&"> <li><a href=&"#&">Next Page >>> </a></li> </ul> </div> </div> الكود أعلاه سيقوم بعرض محتوًى ساكنٍ. لجعله ديناميكيٍّ سنستخدم حلقة تِكرارِ ووردبريس داخل منطقة التدوينات لعرضها بشكل متكرّرٍ مع محتوًى مختلفٍ. قم بتعويض الكود الذي نسخته سابقا بهذا الكود: <?php get_header(); ?> <!-- BLOG AREA --> <section> <hr class=&"no-margin&" /> <div class=&"blog-container section-content&"> <div class=&"container&"> <?php if (have_posts()) : ?> <div class=&"row&"> <div class=&"col-md-8&"> <ul class=&"negative-margin&"> <li> <?php while(have_posts()) : the_post(); ?> <h1><a href=&"<?php the_permalink(); ?>&" class=&"gray&"><?php the_title(); ?></a></h1> By <a href=&"<?php the_author_posts() ?>&"><?php the_author(); ?> </a> / On <?php echo get_the_date('F j, Y'); ?> / In <?php the_category(', '); ?> <?php if (has_post_thumbnail()) : ?> <figure> <a href=&"<?php the_permalink(); ?>&"><?php the_post_thumbnail('', array('class' => 'opacity-hover box-layer img-responsive')); ?></a> </figure> <?php the_excerpt(); ?> <div class=&"btn-margin&"> <a href=&"<?php the_permalink(); ?>&" class=&"btn btn-primary&">CONTINUE READING >>> </a> </div> </li> <?php endif; ?> <?php endwhile; ?> </ul> <?php global $wp_query; if ($wp_query->max_num_pages > 1) : ?> <div class=&"box-layer align-center page-nav&"> <ul class=&"btn&"> <li><?php previous_posts_link('<<< Previous Page', $wp_query->max_num_pages); ?></li> <li><?php next_posts_link('Next Page >>>', $wp_query->max_num_pages); ?></li> </ul> </div> <!-- end box --> <?php endif; ?> <?php endif; ?> </div> <aside> <div class=&"col-md-3 col-md-offset-1 margin-sidebar&"> <?php get_sidebar(); ?> </div> </aside> </div> </div> </div> </section> <?php get_footer(); ?> حلقة تِكرار ووردبريس عبارة عن أقسامِ أكواد تُستخدم من طرف ووردبريس لعرض المقالات. باستخدام حلقة التِّكرار هذه ووردبريس سيقوم بتناول كلِّ مقالٍ على حِدى ليتمّ عرضه في الصّفحة الحاليّة، بحيث يتم العرض وفق المعايير المحدّدة داخل وسوم حلقة التِّكرار. في العادة هذه الحلقة تأتي بهذه الأقسام من الأكواد: <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?> الكود أعلاه يمثّل الشّكل القياسيِّ لحلقة تكرار ووردبريس لِعرض المقالات ومع ذلك مازال علينا استخدام الدوالّ التالية ضمن الحلقة: the_permalink : تقوم بعرضِ الرّابط الدائم للمقالِ الحاليِّ. the_title : تقوم باسترجاع عنوان المقالِ الحاليِّ. the_author_posts : تقوم بعرض عدد المقالات التّي قام الكاتب الحاليُّ بنشرها. the_author : تقوم بعرض اسم كاتبِ المقالِ الحاليِّ. get_the_date : تسترجع التوقيت الذي كُتب به المقالُ الحاليِّ. the_category : تعرض التصنيف أو التصنيفات التي ينتمي إليها المقال الحاليّ. the_post_thumbnail : تعرض الصّورة البارزة للمقالِ الحاليِّ كما تمّ تحديده في شاشة تعديل المقال (سنرى هذا بشكل مفصّلٍ بعد قليل). the_excerpt : تعرض المقتطف للمقالِ الحاليِّ. بعد تطبيقِ بعض الفلاتر عليها وتضمين auto-p عليها سنقوم بتحويل line-breaks إلى فقرة HTML فيما يتعلّق بالصّورة البارزة فسنستخدم الكود التّالي: <?php if (has_post_thumbnail()) : ?> <figure> <a href=&"<?php the_permalink(); ?>&"><?php the_post_thumbnail('', array('class' => 'opacity-hover box-layer img-responsive')); ?></a> </figure> <?php endif; ?> أوّلًا يتّم التأكّد من أنّ المقال يحتوي على صورةٍ بارزة، بعد ذلك إذا كان يحتوي على واحدةٍ، سنقوم بعرض رابط الموضوع إضافة إلى الصورة نفسها. لاحظ أنّنا أضفنا مصفوفة تحتوي على كلاس opacity-hover box-layer img-responsive. هذه طريقة لإضافة كلاس للصورة البارزة وجعلها تبدو بشكلٍ أجمل عن طريق إضافة: تأثيرٍ عند تمرير الفأرة فوقها، حدودٍ وظِلّ صندوق. لكنّ القيّام بكلّ هذا لن يقوم بعرض الصورة البارزة، يجب عليك أوّلًا تسجيل الصّورة البارزة. قم بنسخ الكود التّالي وأضِفه في ملفِّ functions.php. <?php /***********************************************************************************************/ /* Add Theme Support for Post Thumbnails */ /***********************************************************************************************/ if (function_exists('add_theme_support')) { add_theme_support('post-thumbnails'); set_post_thumbnail_size(742, 428); } ?> جيّد! الصورة البارزة ستظهر الآن. التّالي سيكون إضافة دالّةٍ تقوم بنزع العارِضات والنِّقاط بينهما من نهاية المقتطف التي تعرض فيه بطريقة افتراضية. دائما في ملفِّ functions.php أضف الكود التالي: <?php /***********************************************************************************************/ /* Remove the brackets, ellipsis and hellip on excerpt */ /***********************************************************************************************/ function trim_excerpt($text) { $text = str_replace('[hellip;]', '...', $text); return $text; } add_filter('get_the_excerpt', 'trim_excerpt'); ?> تاليًّا، سنقوم بتشغيل ترقيم الصّفحات التيّ قمنا بإضافتها سابقًا في ملفِّ index.php. الكود التّالي سيقوم باستدعاء wp_query، هناك كلاس محدّدة في نواةِ ووردبريس تتعامل مع تعقيدات استعلامات المقالات (أو الصفحات) لمدوّنة ووردبريس. هذه الكلاس بإضافة روابط لـ previous_post_link و next_posts_link function للتنقّل بين صفحاتِ مدوّنتك. ألقِ نظرةً على الكود التّالي: <?php global $wp_query; if ($wp_query->max_num_pages > 1) : ?> <div class=&"box-layer align-center page-nav&"> <ul class=&"btn&"> <li><?php previous_posts_link('<<< Previous Page', $wp_query->max_num_pages); ?></li> <li><?php next_posts_link('Next Page >>>', $wp_query->max_num_pages); ?></li> </ul> </div> <!-- end box --> <?php endif; ?> <?php endif; ?> كلمسةٍ ختاميِّة، قم بتضمين دالّة get_sidebar داخل وسم div ذو كلاس col-md-3 col-md-offset-1 margin-sidebar الكلُّ داخل وسمِ HTML5 aside، ستحصل كود مشابه للتّالي: <aside> <div class=&"col-md-3 col-md-offset-1 margin-sidebar&"> <?php get_sidebar(); ?> </div> </aside> كمراجعة نهائيّة ملفّ index.php يجب أن يحتوي على الكود أدناه، راجعه لتفادي أيّة أخطاء محتملة. <?php get_header(); ?> <!-- BLOG AREA --> <section> <hr class=&"no-margin&" /> <div class=&"blog-container section-content&"> <div class=&"container&"> <?php if (have_posts()) : ?> <div class=&"row&"> <div class=&"col-md-8&"> <ul class=&"negative-margin&"> <li> <?php while(have_posts()) : the_post(); ?> <h1><a href=&"<?php the_permalink(); ?>&" class=&"gray&"> <?php the_title(); ?> </a></h1> By <a href=&"<?php the_author_posts() ?>&"><?php the_author(); ?> </a> / On <?php echo get_the_date('F j, Y'); ?> / In <?php the_category(', '); ?> <?php if (has_post_thumbnail()) : ?> <figure> <a href=&"<?php the_permalink(); ?>&"><?php the_post_thumbnail('', array('class' => 'opacity-hover box-layer img-responsive')); ?></a> </figure> <?php the_excerpt(); ?> <div class=&"btn-margin&"> <a href=&"<?php the_permalink(); ?>&" class=&"btn btn-primary&">CONTINUE READING >>> </a> </div> </li> <?php endif; ?> <?php endwhile; ?> </ul> <?php global $wp_query; if ($wp_query->max_num_pages > 1) : ?> <div class=&"box-layer align-center page-nav&"> <ul class=&"btn&"> <li><?php previous_posts_link('<<< Previous Page', $wp_query->max_num_pages); ?></li> <li><?php next_posts_link('Next Page >>>', $wp_query->max_num_pages); ?></li> </ul> </div> <!-- end box --> <?php endif; ?> <?php endif; ?> </div> <aside> <div class=&"col-md-3 col-md-offset-1 margin-sidebar&"> <?php get_sidebar(); ?> </div> </aside> </div> </div> </div> </section> <?php get_footer(); ?> الخطوة 2.7- العملُ مع ملفِّ single.php الآن سنقوم بعرض كلِّ مقالةٍ بشكل منفصل، أنشئ ملفّ single.php ثمّ أضف له الكود التّالي: <?php get_header(); ?> <!-- BLOG AREA --> <section> <hr class=&"no-margin&" /> <?php if (have_posts()) : while(have_posts()) : the_post(); ?> <div class=&"blog-container section-content&"> <div class=&"container&"> <div class=&"row&"> <div class=&"col-md-8&"> <div class=&"box-layer custom-padding&"> <section> <h1><a href=&"<?php the_permalink(); ?>&" class=&"gray&"><?php the_title(); ?></a></h1> By <a href=&"<?php the_author_posts() ?>&"><?php the_author(); ?> </a> / On <?php echo get_the_date('F j, Y'); ?> / In <?php the_category(', '); ?> <?php if (has_post_thumbnail()) : ?> <figure> <a href=&"<?php the_permalink(); ?>&"><?php the_post_thumbnail('', array('class' => 'opacity-hover box-layer img-responsive')); ?></a> </figure> <?php the_content(); ?> <?php endif; ?> </section> <?php endwhile; ?> <?php endif; ?> <section> <div class=&"comment-section&"> <?php // If comments are open or we have at least one comment, load up the comment template if ( comments_open() || '0' != get_comments_number() ) : comments_template(); endif; ?> </div> </section> </div> <!-- RELATED ARTICLE AREA --> <section> <div class=&"box-layer related-articles custom-padding&"> <h3 class=&"align-center&">Related Articles</h3> <?php $current_categories = get_the_category(); $first_category = $current_categories[0]->term_id; $args = array( 'post_per_page' => 3, 'category__in' => array($first_category), 'post__not_in' => array($post->ID) ); $related_articles = new WP_Query($args); if ($related_articles->have_posts()) : ?> <ul> <?php while ($related_articles->have_posts()) : $related_articles->the_post(); ?> <li class=&"col-md-4&"> <?php if (has_post_thumbnail()) : ?> <figure> <a href=&"<?php the_permalink(); ?>&"><?php the_post_thumbnail('', array('class' => 'opacity-hover box-layer img-responsive')); ?></a> </figure> </figure> <a href=&"<?php the_permalink(); ?>&"><?php the_title(); ?></a> <?php endif; ?> </li> <?php endwhile; ?> <div class=&"clear&"></div> </ul> <?php endif; ?> <?php // Restore original Post Data wp_reset_postdata(); ?> </div> </section> </div> <!-- SIDEBAR AREA --> <aside> <div class=&"col-md-3 col-md-offset-1 margin-sidebar&"> <?php get_sidebar(); ?> </div> </aside> </section> <?php get_footer(); ?> ولإظهار التعليقات، قم بإضافة الكود التّالي: <section> <div class=&"comment-section&"> <?php if ( comments_open() || '0' != get_comments_number() ) : comments_template(); endif; ?> </div> </section> هذا الكود سيتحقّق إن كانت التعليقات مُتاحةً أو إن كانت هناك تعليقات ليقوم باستدعاء نموذج التعليقات (سنتناول ذلك لاحقا). الخطوة 2.8- العملُ مع ملفِّ page.php بعد أن أنهينا العمل على صفحة التّدوينة، سنتوجّه للعملِ على الصّفحات العادية. أنشئ ملفّ page.php ثم ألصق به الكود التّالي: <?php get_header(); ?> <!-- BLOG AREA --> <section> <hr class=&"no-margin&" /> <div class=&"blog-container section-content&"> <div class=&"container&"> <div class=&"row&"> <div class=&"col-md-8&"> <div class=&"box-layer custom-padding&"> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h3> <?php the_title(); ?> </h3> <?php if (has_post_thumbnail()) : ?> <figure> <a href=&"<?php the_permalink(); ?>&"><?php the_post_thumbnail('', array('class' => 'opacity-hover box-layer img-responsive')); ?></a> </figure> <?php endif; ?> <?php the_content(); ?> <?php endwhile; endif; //ends the loop ?> </div> </div> <!-- SIDEBAR AREA --> <aside> <div class=&"col-md-3 col-md-offset-1 margin-sidebar&"> <?php get_sidebar(); ?> </div> </aside> </section> <?php get_footer(); ?> مجدّدًا لا جديد في هذا الملفِّ عدا أنّه لا يحتوي على قسمٍ للتعليقات كونه سيعرضُ صفحةً عاديّة. في الملفّين المقبلين سنقوم باستخدام نموذجين مُدمجين في ووردبريس لعرض الصّفحات بِنسقٍ مختلفٍ. ترجمة -وبتصرّف- للمقال How to Convert a Static HTML Template into a Responsive WordPress Theme
  6. قد تصاب بحيرة في بداية استخدامك لووردبريس حين تبدأ في التعمق فيها كنظام إدارة للمحتوى لديك لتواجه مصطلحات مثل التصنيفات-Taxonomy والتصنيفات الخاصة-Custom Taxonomies بعد أن كنت تتعامل بسلاسة مع الفئات-Categories والوسوم-Tags. وسنتناول في هذا المقال الفرق بين كل منهم، وكيفية استخدامهم في موقعك، مع بعض الأمثلة على كيفية استخدامهم، ونظرة أيضًا على كيفية استخدام إضافاتنا لهم لإضافة إمكانيات جديدة لموقعك. التعريفات دعنا نبدأ ببعض التمهيد أولًا كي ندرك أبعاد ما نتحدث عنه، فنبدأ بالتصنيفات-taxonomies إذ أنها أوسع المصطلحات التي سنتعامل معها وأشملها. التصنيف Taxonomy أتى هذا المصطلح أصلًا من علم الأحياء، حيث يستخدم في تصنيفات الأنواع الحية وممالك الكائنات، ويعرّفه قاموس أوكسفورد على أنه “نظام يستخدم في التقسيم أو التصنيف”. أما لدينا في ووردبريس فهو يشير إلى “تقنية جمع لبعض المنشورات أو الروابط أو أنواع مخصصة من المنشورات”، وهيا ننظر الآن في بعض الأمثلة التي ستزيل اللبس نهائيًا عن فهم التصنيف في ووردبريس. فقد عرفنا إلى الآن أنه نظام تجميع تستخدمه أنت لتحديد نوع أي منشور في ووردبريس، فالفئة-category تُعدّ تصنيفًا، وكذلك الوسم-tag ما هو إلا تصنيف أيضًا، وتستطيع إنشاء تصنيفاتك الخاصة التي تضع المنشورات العادية والمخصصة تحتها، حيث يكثر استخدام التصنيفات لتمييز منشورات عادية عن نوع مخصص من المنشورات-Custom Post Type، من أجل تلافي أي خلط بين المنشورات العادية والمخصصة منها. فمثلًا ستجد أن إضافة “Support System Plugin” تضيف نوعي منشورات خاصة حين تثبتّها في موقعك، وهما “Support Ticket” و”FAQ”. كما ستنشئ تصنيفين مخصصين هما “Ticket Category” و”FAQ Category”. وذلك التقسيم يفصل بين البطاقات “Tickets” التي لديك والأسئلة الشائعة “FAQ”، وبين منشورات عادية كمقالات مدونة الموقع. ما هو الفصل Term؟ هو عنصر داخل التصنيف، تستخدمه لتمييز منشوراتك عن بعضها، ويمكن أن يجمع عدة عناصر فرعية أخرى فيه. فإن كنت تستخدم إضافة “Support” التي ذكرناها قبل قليل وأنشأت فئات-categories لكل فريق من فِرَق الدعم لديك، فكل واحد من تلك الفِرَق يشكّل فصلًا في تصنيف “Ticket Category” الذي أنشأَته الإضافة حين ثبّتّها. ويمكنك أن تنشئ فصولًا مختلفة لتصنيف “FAQ Category” كذلك إلا أنك قد ترى عناصر مكررة، لكن بالنسبة لووردبريس فهذه فصول مختلفة وستُخَزَّن منفصلة في قاعدة البيانات، حتى لو أعطيتها نفس الأسماء. إضافة Support System تضيف نوعين مخصصين من المنشورات، وتصنيفين ما هي الفئة Category؟ يخلط الناس عادة بين الفئات-Categories والتصنيفات-Taxonomies، إليك وظيفة كل منهما وموقعه: • الفئة عبارة عن تصنيف. • فئة س التي تضيفها داخل تصنيف ص، هي فصل-Term داخل هذا التصنيف وأحد عناصره. فإذا أنشأت فئات لمنشوراتك مثل “الأخيرة” و”المميزة”، فستكون تلك فصولًا في تصنيف واحد، تمامًا كما أن المبيعات والدعم مثلًا عبارة عن فصول في تصنيف “Ticket Categories” داخل إضافة “Support System”. ما هو الوسم-Tag إذًا؟ الوسم يشبه الفئة كثيرًا، فهو فصل في تصنيف “post_tag”، فإن كان لديك “ووردبريس” و”شروح” كوسوم لمنشوراتك، فهما فصلان في تصنيف “post_tag”. ولا تسألني لماذا سُمّيت الوسوم في ووردبريس “post_tags” ولم تُسمّ الفئات “post_categories”، فهذا أحد ألغاز ووردبريس العجيبة. لكن ما الفرق بين الوسم والفئة، ولمَ نحتاج إلى الاثنين؟ ألا يغني أحدهما عن الآخر؟ تختلف الفئات عن الوسوم في أن بنيتها هرمية، فيمكن أن تنشئ فئة فرعية من فئة موجودة أصلًا، لكن لا يمكن فعل هذا في الوسوم، لهذا ستجد نفسك تستخدم الفئات لهيكلة موقعك أكثر من الوسوم، بما أن لكل منهما بنية منفصلة. أما التصنيفات ففيها مرونة أكبر، إذ يمكن تشكيلها لتكون هرمية مثل الفئات، ويمكن استخدامها مثل الوسوم بحيث لا يتفرع تصنيف من آخر، لذا يمكن اعتبارها تتصرف مثل الفئات، غير أن الفرق بينهما أن التصنيف يمكن أن يحتوي فئة بينما العكس غير صحيح. إنشاء التصنيفات والفصول ننتقل الآن إلى كيفية إنشاء فصل أو تصنيف بما أننا فصّلنا في معانيها قبل قليل، ستجد ابتداءًا أن ووردبريس لديها تصنيفات قليلة موجودة افتراضيًا، وهي: Category Tag Link category: لا يُستخدم هذا مع المنشورات العادية، لكن مع منشورات الروابط. وهو أحد الآثار الموجودة في ووردبريس أيام ميزة كان اسمها blogroll. خلاصة الأمر أنك تستطيع تجاهل هذا التصنيف. Post format: يستخدم هذا التصنيف مع المنشورات العادية، ولتحديد نوع المنشور كذلك -فيديو، نص، إلخ-. أتخيل أن يكون هذا مفيدًا للمدونين رغم أني لم أستخدمه بنفسي أو أرى حالات استخدام كثيرة له. ومما سبق يتبيّن أن ووردبريس تأتي بأربع تصنيفات أساسية مباشرة، يمكننا الاستفادة مباشرة من اثنين منهما. وستجد تصنيف “Category” به فصل واحد وهو “uncategorized”، أما تصنيف “post_tag” لا يحتوي أي فصول حتى تضيف أنت بنفسك فيه. لكن هذا لا يشكّل نهاية الطريق للتصنيفات والفصول في موقعك، فإن ووردبريس تسمح لك بإنشاء تصنيفاتك الخاصة وتضع تحتها أي نوع من المنشورات تراه مناسبًا. ولديك طريقتين لإنشاء تصنيف خاص بك، وهي إما عبر دالة ()register_taxonomy بكتابة شفرة برمجية ، أو باستخدام إضافة CustomPress لإنشاء تصنيفات جديدة دون كتابة أي شفرة. وأي من تلك الطريقتين ستنشئ تصنيفًا جديدًا، كما يمكنك إنشاء فصول برمجيًا باستخدام دالة ()wp_insert_term . قد يفيدك هذا إن كنت تكتب إضافة بتصنيف تريد تجهيزه بفصول مسبقًا، لذا إن كنت تكتب إضافة لتذاكر الدعم كإضافتنا التي تحدثنا عنها في أول المقال واستخدمناها كمثال، فربما تود إضافة تصنيف مثل”priority” مثلًا، وتضع فيه فصولًا بأسماء مثل “high” و”medium” و”low”. غير أن أسهل طريقة يمكن إنشاء فصل بها هي من خلال صفحة داخل لوحة تحكم ووردبريس في إضافة “Support System”، تختص بإنشاء فئة تذاكر جديدة، وستجد أن إضافة فصل جديد هنا يشبه إضافة فئة جديدة في صفحة الفئات “categories” إليك صورة منها: استخدام مختلف للتصنيفات والفئات والفصول توضع الفئات منفصلة عن التصنيفات المخصصة وفصولها، لا بأس بهذا إن كنت تستخدم إضافة من طرف ثالث يجب أن تعمل على أنواع عديدة من المواقع إن كان المطور لا يعرف كيف ستستخدم التصنيفات أو المنشورات العادية في موقعك، فعندهاا لن يجعل التصنيفات التي أنشأتها الإضافة تتفاعل مع تلك العادية التي ستستخدمها. لكن إن كنت تكتب إضافتك بنفسك، فلا بأس أن تستخدم خيالك قليلًا، كما سنرى الآن: استخدام التصنيفات الخاصة لإضافة طابع مميز للمنشورات العادية قد يأتي عليك وقت لا تكفي فيه فئات موقعك لتصنيف المنشورات إن كان الموقع مبنيًا بشكل أساسي على المنشورات/المقالات وحدها، وستجد أنك تستخدم عدة طبقات من الفئات الفرعية إلى حد أن الفئات الرئيسية يجب أن تكون تصنيفات بحد ذاتها. وإحدى الطرق التي تحدد بها أن هذه هي حالتك أن تسأل نفسك إن كان هناك أي تفاعل بين الفئات الفرعية، وما إن كنت تربط الفئات الرئيسية إلى منشوراتك أم لا. فإن كان كل محتوى مدونتك عن الكتب مثلًا، ولديك فئتين رئيسيتين هما المؤلِّف ومجال الكتاب، مع فئات فرعية لعدة مؤلفين وأنواع كثيرة للكتب، فيجب أن تنشئ تصنيفين رئيسيين هما المؤلف، ومجال الكتاب، لماذا؟ لأن كل مقال عن كتاب سيكون تحت فئة واحدة فقط في تصنيف المؤلف. لن تربط تصنيفي المؤلف ومجال الكتاب لأي مقال بعد الآن. كما أن إنشاء تصنيفات جديدة يتيح لك كتابة شفرة برمجية لاستعلامات مخصصة تبحث عن الكتب في مجال ما لمؤلف معين، قد تستطيع فعل هذا باستخدام الفئات، لكن لن تكون بنفس الكفاءة. استخدام التصنيفات الخاصة مع المنشورات وأنواع المنشورات الخاصة لا يوجد سبب يمنعك من تسجيل تصنيف مخصص وتضع تحته نوع معينًا من المنشورات خصصته ليكون الخيار الافتراضي لما تنشره، فلنقل مثلًا أنك تعمل على مدونة الكتب السالفة الذكر، وأنشأت نوع منشورات سميته “review” تستخدمه لكتابة مراجعات عن الكتب التي قرأتها، فإن هذا يختلف قطعًا عن المقالات العادية في مدونتك والتي ستتحدث عن موضوعات أكثر شمولية حول الكتب. فيمكن أن تنشئ تصنيفًا مخصصًا-Custom Taxonomy من مجال الكتاب لمراجعة الكتب، كي يعرف القراء أنك تحت هذا التصنيف تكتب مراجعات لكتب في هذا المجال أو ذاك. وإن أردت استخدام التصنيفات لمنشورات مدونتك أيضًا فيمكنك كتابة منشورات عن كل مجال تهتم به ثم تستخدم خطاف pre_get_posts لترتيب المنشورات والمراجعات في هذا المجال أو ذاك في صفحة أرشيفات الفصل الخاص به. أو تنشئ قالبًا مخصصًا لهذا التصنيف (اسمه taxonomy-genre.php) كي يبدأ حلقتين-loops، واحد للمراجعات وآخر للمنشورات. إضافة التصنيفات للصفحات يمكنك أيضًا أن تضيف التصنيفات لأنواع منشورات ليس لديها تصنيف افتراضي ملحقة به، كالصفحات مثلًا. ولفعل هذا نستخدم دالة ()register_taxonomy_for_object_type ، إذ يسمح لك ذلك بإضافة أي تصنيفات موجودة مسبقًا إلى أي نوع منشور موجود أيضًا من قبل. فكي تضيف تصنيفات إلى الصفحات مثلًا ستضيف هذا إلى دوال السمة التي تستخدمها أو إلى إضافة -plugin: <?php register_taxonomy_for_object_type( 'category', 'page' ); ?> وإن أردت فعل هذا مع تصنيف أنشأته بنفسك، فأضف هذا السطر إلى شفرة إنشاء التصنيف باستخدام دالة ()register_taxonomy ، والعامل الثاني في هذه الدالة هو نوع المنشور الذي سيدخل تحت هذا التصنيف، وإن كنت تريد استخدام أكثر من نوع منشور فيجب أن تضعهم في مصفوفة. إذًا، إذا أنشأت نوع منشورات اسمه “review” وأردت إنشاء تصنيفًا اسمه “genre” سيدخل تحته أي”review” أو”page” أو”post”، فإن شفرة إنشاء التصنيف تكون هكذا: <?php register_taxonomy( 'genre', array( 'review', 'post', 'page' ), $args ); ?> وكمل تلاحظ فإن أول عامل متغير هنا هو معرّف التصنيف “genre”، ثم الثاني هو مصفوفة أنواع المنشورات، والثالث هو معاملات للتصنيف الذي أنشأته. وفائدة استخدام التصنيفات هنا هي إمكانية إنشاء تصميمات لعناصر بعينها في هذا المجال -review،posts،page لتصنيف genre في حالتنا-، كما يمكن تحديد مكان أي صفحة في أي فئة ثم إجراء استعلام-query في قالب صفحتك يخرج لك منشورات ومراجعات من تلك الفئة بعد محتوى الصفحة التي حددتها، أو عرض محتويات الصفحة بمراجعاتها، أو المنشورات في صفحة أرشيفات التصنيف. خاتمة إن القدرة على إنشاء تصنيفاتك الخاصة في ووردبريس هو أحد الأمور التي جعلتها نظام إدارة محتوى بدلًا من منصة تدوين، عبر استغلال كل طرق التصنيف الممكنة للمحتوى التي يمكنك إنشاء مواقع تعرض المحتوى الذي تريده بدقة. المهم ألا تترك نفسك تغرق في الاختلافات بين التصنيف والفئة، فالتصنيف-taxonomy هو الأشمل، وداخله فصول-terms، كل منها يمكن أن يكون فئة-category بذاتها. ترجمة -بتصرف- لمقال Using Categories, Tags and Taxonomies Properly in WordPress لصاحبته ريتشل ماكّولن.
  7. إن كنت تنشئ موقعًا لعملاء أو لمستخدمين بعيدين عن التقنية فإن تخصيص وتهيئة لوحة التحكم في ووردبريس يساعدهم على إدارة الموقع والعمل على المحتوى بشكل أيسر وأسرع، فأغلب العملاء الذين يطلبون مني بناء مواقع تستخدم ووردبريس يكونون بعيدين عن التقنية ولا يملكون وقتًا لتعلم كيفية إدارة الموقع أو ووردبريس. لذا يقع علي أنا أن أخصص لوحة التحكم "dashboard” وصفحات الإدارة الأخرى داخل لوحة التحكم لتيسير الأمر عليهم، كما أني أضع بعض أشكال الدعاية المختلفة لي ولعملي داخل التحكم كنوع من الدعاية لنفسي. ويختلف التخصيص الذي أقوم به حسب حاجة كل عميل، لكن عادة يكون فيه واحد أو أكثر من العناصر التالية: وضع شعاري في صفحة تسجيل الدخول. وضع دعاية لي في أقسام لوحة التحكم، من شيء بسيط مثل تغيير نصوص الترويسة "header" والتذييل "footer”، إلى وضع هويّتي في الألوان والشكل العام للأقسام. إزالة ودجات لوحة المتحكمات التي لا يحتاجها العميل، وإضافة ودجات أخرى مع تعريف وشرح لما يجب أن يعرفوه عن الموقع. إزالة عناصر من قوائم الإدارة التي لا يحتاج العميل إلى الدخول إليها، وإضافة عناصر أخرى عند الحاجة. إضافة صناديق وصفية "metaboxes” لتعديل الأقسام كي يستطيع العميل إضافة بيانات عبر الحقول المخصصة. وتزوّدك ووردبريس بالعديد من الدوال التي تساعدك إن أردت كتابة تلك المهام بنفسك برمجيًا -وهو ما أفعله عادة، فأضع كل التخصيصات التي أرغب بها في إضافة "plugin" إدارية مخصصة-، لكن إن لم ترغب في كتابتها بنفسك أو داهمك موعد التسليم وأردت حلولًا أسرع، فإذًا طريقك الأسرع والأسهل هو إضافات ووردبريس الجاهزة. وسأضع بين يديك في هذا المقال أفضل 10 إضافات في نظري لتخصيص أقسام لوحة التحكم في ووردبريس، إضافات تتنوع من تلك التي تسمح لك بتعديلات كثيرة في لوحة التحكم إلى تلك الصغيرة التي تنفذ مهمة واحدة فقط وبسيطة، لتقرر أنت بعدها استخدام ما يناسبك وفق الحالة التي لديك، وسنبدأ بأكبر واحدة فيهم: Ultimate Branding تعطيك هذه الإضافة خيارًا لتعديل الواجهات الأمامية للمواقع في شبكتك إن كنت تدير أكثر من موقع، إضافة إلى تخصيص أقسام لوحة التحكم طبعًا، وإضفاء الطابع المميز لهويّتك فيها، وتغيير لوحة المتحكمات، وإزالة عناصر القوائم التي لا تريدها، وإعادة ترتيب العناصر الباقية، وإنشاء شريط إدارة مخصص "admin bar”، وتضيف نصوصًا مساعِدة، وغير ذلك الكثير. ويمكنك تفعيل/إلغاء تفعيل أي من تلك المزايا من لوحة المتحكّمات كي تستخدم ما تحتاجه فقط لموقعك كما ترى في الصورة التالية: White Labels CMS هذه هي أشهر إضافة مجانية لتخصيص لوحة التحكم، فتضيف من خلالها شعارك الخاص، وتضيف/تزيل ودجات لوحة المتحكمات، أو تخفي الصناديق الوصفية في صفحات التعديل "editing screens”، وتزيل العناصر التي لا تريدها من قوائم لوحة التحكم، وتضيف شفرة CSS خاصة بك أيضًا إن شئت. وقد لا تكون محمّلة بالمزايا مثل Ultimate Branding، وقد تصيبك واجهة استخدامها ذات الصفحة الواحدة بقليل من الحيرة، لكن الجيد فيها أنها مجانية وتوفّر أغلب الوظائف الموجودة في كل الإضافات المجانية. Admin Menu Editor إن كان كل ما تحتاجه هو إضافة أو إزالة عناصر في قوائم إدارة ووردبريس فهذه الإضافة مناسبة للغاية، بل تستطيع من خلالها تغيير أسماء عناصر القوائم في حالة كنت تبني موقعًا لعميل سيكتب أخبارًا مثلًا، فحينها يكون من المناسب تغيير نص Posts إلى News إن كنت تستخدم النسخة الإنجليزية، وكذلك الأمر بالنسبة لصفحة إدارة القوائم في قوائم التنقل. ويمكنك أيضًا إعادة ترتيب عناصر القائمة وإخفاؤها من المستخدمين الذين لا يملكون خبرة كافية بالتعامل معها. وإن جربت الترقية إلى النسخة المدفوعة منها فستحصل على خيارات بنقل عناصر القوائم الفرعية إلى قوائم أخرى، في حالة حذف خيارات كثيرة من قائمتين أو أكثر مثلًا، فيكون جمع العناصر الجديدة في قائمة مستقلة خيارًا مناسبًا. Post Type Archive Link أحد الأمور التي تحيرني في ووردبريس هو صعوبة إضافة رابط لأرشيف نوع معين من المنشورات إلى قوائم التنقل، والطريقة الوحيدة لفعل ذلك هي معرفة رابط أرشيف المنشور نفسه ثم إضافته كرابط مخصص، وهذا قد يكون عسيرًا إن لم تكن معتادًا على طريقة توليد ووردبريس للروابط. وهنا يأتي دور إضافة Post Type Archive Link إذ تضيف صندوقًا لأنواع منشوراتك المخصصة إلى صفحة قوائم الإدارة كي تضيف رابطًا لكل أرشيف خاص بنوع منشور معين إلى القوائم لديك، وهذا مفيد جدًا في حالة كنت تستخدم ووردبريس كنظام إدارة محتوى ولديك عدة أنواع مختلفة من المنشورات. Media Library Assistant إن كان لديك ملفات وسائط كثيرة وأردت إدارتها بكفاءة أكبر بدلًا من الخيارات المتوفرة افتراضيًا، فّإن هذه الإضافة تسمح لك بإضافة تصنيفات ووسوم إلى ملفات الوسائط، كما تعرض معلومات عن كل ملف في القائمة الرئيسية للوسائط، كأن تبيّن أي منشور نشرت فيه صورة معينة كصورة رئيسية مع رابط إلى المنشور نفسه. وتتجلى أهمية هذه الإضافة حين تحتاج أن تغير أو تزيل صورة تعرف اسمها، لكنك لا تدري أين رفعتها بالضبط. Login Logo هذه هي إحدى الإضافات البسيطة التي تحدثت عنها، وهي تتيح لك تغيير شعار صفحة التسجيل الأساسية في ووردبريس، عبر تسمية ملف الشعار الجديد login-logo.png، ووضعه في مجلد wp-content. ولا شرح يذكر لها إلا تفعيلها ورفع الملف، وسيستبدل شعارك الشعار القديم لووردبريس. وسترى حين تدخل إلى مجلد الإضافة نفسها تحذيرًا أنها لم تحدّث لأكثر من عامين، فلا تقلق لأن الإضافة أبسط من أن تحتاج إلى تحديث، وهي من مطوّر يمكن الوثوق فيه، إذ هو مارك جاكيث، أحد المساهمين في تطوير ووردبريس نفسها. Dashboard Widget Order تقدم ودجات لوحة المتحكمات معلومات مفيدة للمستخدم عن موقعه فتتيح له إنشاء محتوى جديد بسهولة، كما تساعده على شق طريقه داخل ووردبريس. لكني أجد أحيانًا أني لا أستطيع تحديد الترتيب الافتراضي لهذه الودجات -أتحدث كمالك موقع أو مطوّر-، صحيح أنك تستطيع إضافة وإزالة تلك الودجات، لكنك لا تستطيع تغيير ترتيبهم دون كتابة أسطر معقدة من الشفرة البرمجية. وتحلّ هذه الإضافة تلك المشكلة لكنها لا تعمل إلا في حالة إدارة المواقع المتعددة، حيث تتيح لك إعادة ترتيب الودجات بسرعة في لوحة المتحكمات، بحيث تعرف مباشرة كيف ستظهر لوحة المتحكمات لكل موقع أو لكل مستخدم يضاف إلى شبكة مواقعك التي تديرها. Dashboard Feeds إن أردت حذف ودجة أخبار ووردبريس "Wordpress News" لأن العميل لا يهتم بووردبريس نفسها ولا بتطوير مواقع تدار بها، فهذه الإضافة تفعل ذلك، بل وتعطيك خيار استبدالها بخدمة خلاصات أخبار أخرى RSS، وإضافة خلاصات الأخبار تلك في ودجات منفصلة إن شئت في لوحة المتحكمات، ويمكنك حينها أن تضع خلاصة أخبار من موقعك أنت كنوع من الدعاية لعملك، لتشجع العميل على العودة إليك مرة أخرى. الخلاصة لا تهمل أمرًا صغيرًا مثل تهيئة لوحة التحكم الخاصة بعميلك حتى وإن احتاج بعض الجهد، إذ سيصب في مصلحة عملك وسمعتك بالنهاية، أن العميل ينجز مهامه أسرع وبسلاسة أكبر حين تبني أنت موقعه، إضافة إلى هويّتك التي ستتركها واضحة في موقعه ليذكرك بها أو يراها بعض العملاء المحتملين فيوصيهم بالتعامل معك مما رأى من جودة عملك واهتمامك براحته والتفاصيل الصغيرة بالنسبة لك، لكنها تؤرقه هو. وهذه الإضافات مسعفات لك إن أردت بناء تجربة الاستخدام هذه في لوحة التحكم بسرعة دون كتابة شفرة برمجية خاصة، ولن تؤثر في الصورة المهنية التي تريدها لنفسك. دعنا نسمع منك في التعليقات إن جربت تخصيص لوحة تحكم من قبل أو واجهتك مشكلة في تخصيصها، أو كانت لك تفضيلات معينة في الإضافات تستخدمها مع عملائك! ترجمة -بتصرف- لمقال Customizing the WordPress Admin Experience for Novice Clients لصاحبته ريتشيل ماكّولن.
  8. هل ترغب في تعلّم برمجة إضافات ووردبريس؟ هذه السّلسلة أُعدّت خصّيصًا لك. سنتعرف في هذه السّلسلة على كل ما تحتاجه لتطوير أوّل إضافة لك على ووردبريس، وفق النّهج التّالي: 1. مُقدّمة إلى برمجة إضافات Wordpress: ستتعرّف في هذا المقال على ماهية إضافات ووردبريس، الأسباب التي تدفعك إلى إنشاء إضافة، وكيف تبني أوّل إضافية بسيطة. 2. برمجة إضافات ووردبريس: الخُطّافات (Hooks) : في هذا المقال ستتعرّف على مفهوم الخّطافات في ووردبريس والتي تعد من أهم الخصائص التي يوفرها ووردبريس والتي جعلته مرنًا وقابل للتمدد بصورة قل أن تجد لها نظيرًا في برمجيات الويب. 3. استقبال وحفظ خيارات (وبيانات) الإضافة: سنتعرف في هذا الدّرس على أنسب الطّرق لحفظ الخيارات العامةللإضافة، وكيفيّة إضافة صفحة إعدادات Settings Page في لوحة التحكم تمكن المستخدم من إدخال وتعديل الخيارات الخاصة بالإضافة 4. نظرة شاملة على قاعدة بيانات ووردبريس: في هذا المقال ستتعرّف على جداول قاعدة بيانات ووردبريس ودور كل جدول بالإضافة لأهم محتوياته وارتباطه بالجداول الأخرى، بالإضافة إلى ذكر بعض الطرق التي يوفرها ووردبريس للتعامل مع البيانات. الآن وبعد أن كوّنت صورة واضحة على كيفية برمجة إضافة ووردبريس، نختم السّلسلة بمثال عملي: 5. مثال عملي لبرمجة إضافة ووردبريس- الجزء الأوّل 6. مثال عملي لبرمجة إضافة ووردبريس- الجزء الثّاني
  9. العديد من الناس يرغبون في بناء مواقع باستخدام ووردبريس، والأغلب قد لا يجيد الأمر ويلجأ إلى مطور مستقل للقيام للأمر، ولكنه يواجه مشكلة في معرفة الأسعار بشكل صحيح، البعض قد يطلب مبلغًا صغيرا يجعلك تبتعد عنه تماما والآخر يطلب مبلغا هائلا يجعلك تعيد التفكير في الأمر. أما بالنسبة للمطورين، فتحديد سعر ما لمشروع ووردبريس أمر صعب جدا، فالأمر تدخل فيه الكثير من الحسابات والأمور، وتحديد السعر الساعي صعب أيضا. ولكن لنقل أنك تحتاج أن تعطي العميل سعرا ثابتا (بعد تقدير عدد الساعات وضربها في سعر الساعة) فأنت تحتاج أن تعرف كم سيحتاج منك الأمر بالتحديد، فأنت لا تريد أن تُبخس حقك، ولا تريد أن ترفع السّعر فتأخذ أكثر من حقك أو تبعد العميل. الأرقام التالية ستكون مبنية على خبرتي، وهي مخصصة لمطور ووردبريس خبير ومتمرس في الأمر إلى جانب تمرسه في تركيب ووردبريس على استضافات. الوقت هو المال سنقوم في هذا المقال بتحديد قيمة العمل انطلاقا من الوقت المطلوب لتنفيذه، ولذا سنقوم بسرد مجموعة أعمال ووردبريس شائعة وتحديد الوقت اللازم لتنفيذها. الوقت والمال هما وجهان لعملة واحدة، فأنت ستُسعّر مشروعك انطلاقا من الوقت الذي تعتقد أنه سيتطلب منك إنهائه، لذا هذه المقالة ستكون مفيدة لكل من المطورين والعملاء لفهم كم من الوقت ستحتاجه لتنفيذ بعض مهمات ووردبريس. هذه الأوقات مبنية على خبرتي الشخصية ولذلك قد تختلف عنك كثيرا لكنها أقرب ما استطعت الوصول إليه، لكن قم أنت بتعديلها انطلاقا من الظروف العمل الذي تقوم به. وملاحظة أخيرة: “ساعة” أو “دقيقة” يقصد بها الوقت الصافي التي تم استغلاله في التفكير أو العمل على مشروع العميل فحسب ولا شيء غير هذا، لذا محادثة 30 دقيقة مع العميل تحتسب 30 دقيقة، لكن 5 دقائق لإعداد حاسوبك + 10 لإحضار القهوة+ 10 دقائق لحل مشكلة في الموقع تحتسب 10 دقائق فقط لأنّك لم تقم سوى بـ 10 دقائق من العمل الفعلي. الأوقات التقريبية لمهمات ووردبريس الشائعة هذه القائمة تحتوي على مجموعة من مهمات ووردبريس الشائعة، والوقت الذي معها هو الوقت المطلوب للقيام بالمهمة بتركيز تام، رغم أن بعض المهمات قد تزيد في الوقت بشكل غير محسوب. تسجيل الدخول وتحديث ووردبريس : 2 إلى 5 دقائق. تنصيب إضافة أو حل مشكلة تتمحور حول تنصيب إضافة (كتنصيب akismet لحذف spam) : 5 دقائق. إعداد بريد إلكتروني عبر نطاق الموقع : 5 دقائق. تسجيل الدخول إلى موقع وتعديل محتوى منشور أو إعداد وإعادة ترتيب روابط التصفح : 5 دقائق. مساعدة عميل في استعادة بيانات تسجيل الدخول، إضافة مستخدم جديد: 5 دقائق. تعديلات CSS بسيطة (تغيير لون عنصر ما، تغيير خط، تغيير مكان عنصر ما وإعطائه خواص جديد): 5 إلى 25 دقيقة. إعداد حساب تويتر للمدونة: 10 دقائق. تنصيب ووردبريس انطلاقا من استضافة محجوزة (إلى جانب إعداد قاعدة البيانات): بعض الوقت لرفع الملفات عبر FTP: حوالي 15 دقيقة عمل. تحديث ووردبريس وكل الإضافات والتأكد أن كل شيء يعمل كما هو مطلوب ولا شيء تعطل: 10 إلى 45 دقيقة. استخدام إضافة ما لبناء شيء ما في الموقع وإعداده (نموذج اتصّال، إعداد الأزرار الاجتماعية) : 10 إلى 30 دقيقة. شراء استضافة وإعدادها لتنصيب ووردبريس عليها (تحديد اسم مستخدم وكلمة مرور إلى جانب FTP وما شابه): 15 دقيقة. نقل موقع ووردبريس عبر استخدام إضافة، من البداية للنهاية إلى جانب الاختبار: 15 دقيقة. تحديد وإصلاح مشكلة في الاستضافة وما شابه (أمور لا علاقة لها بووردبريس مباشرة) : 15 دقيقة إلى ساعة. بناء صفحة فيسبوك للمدونة: 20 دقيقة. استقبال ثغرة أو خطأ عبر رسالة في البريد، إيجاد المشكلة الواضحة في PHP أو في JS، إصلاح المشكلة، رفع الإصلاح، التأكد من أنه يعمل، مراسلة العميل حول الأمر: 20 إلى 45 دقيقة. شراء اسم نطاق واستضافة وتنصيب ووردبريس عليها وإعداد النّطاق ليوجه لها: 30 إلى 45 دقيقة. البحث وإيجاد وإصلاح مشكلة غير واضحة وغير شائعة: 30 دقيقة إلى 5 ساعات لأغلب المشاكل. نقل موقع ووردبريس يدويا، من البداية للنهاية إلى جانب الاختبار: ساعة واحدة. أقصر مدة لتطوير موقع ووردبريس هذه أقصر مدة من وقت العمل الحقيقي لإعداد موقع ووردبريس قابل للاستخدام للعميل. هذه الأوقات إما تأتي عن تجربة سابقة أو تقدير نسبي لأقل وقت ممكن. هذه الأوقات تحتوي وقت العمل فقط، ولا تحتوي العمل الجانبي (الاستشارة الأولية، التخطيط، التحديد، التجريب من قبل العميل، إرسال دفعات العمل وما إلى ذلك). فهي ببساطة عبارة عن مجموعة من الأعمال المذكورة من قبل، مثل”اختيار استضافة وتنصيب ووردبريس عليها”، إضافة إلى بعض الأعمال، مثل تعديل واجهة الموقع بشكل بسيط. مدونة ووردبريس بسيطة جدا إلى جانب تنصيب قالب ووردبريس بسيط، من دون أيّة تعديلات: ساعتان. سيتضمن هذا تنصيب ووردبريس وتنصيب قالب ووردبريس على استضافة وإعداد النّطاق وإعداد اسم الموقع والروابط إلى جانب تنصيب إضافة أو اثنتان. موقع ووردبريس لشركة أو مشروع ما (صفحة رئيسية، صفحة عن الموقع، صفحة التواصل، وربما مدونة) على قالب مدفوع بتخصيص بسيط جدا: 8 ساعات. يتضمن هذا الوقت الأدنى لإطلاق موقع ووردبريس لشركة أو لخدمة ما، قد يتضمن هذا نموذج تواصل وقليلًا من التعديل على التصميم. متجر إلكتروني بسيط: 20 ساعة. سيتضمن هذا موقع ووردبريس بسيط يستخدم wooComerce وقادر على عرض وتصنيف منتجات ومعالجة خدمات الزبائن. العمل الجانبي على مشاريع العملاء العمل الجانبي، ويقصد به عدد ساعات العمل التي لم يتم فيها العمل مباشرة على تطوير الموقع، أيّ كل العمل غير التقني. العمل الجانبي قد لا يتم احتسابه (مكالمة أولية للاستشارة) أو يتم احتسابه (الرد على بريد عميل يحتوي ملاحظات على العمل). مجمل المحادثات الأولية والاستشارة قبل بدء العمل المدفوع : ساعة إلى 4 ساعات. الوقت لتقديم حجم المشروع: 45 دقيقة. تواصل جانبي، يتضمن التواصل اليومي لحالة المشروع، الملاحظات، الدفع وما شابه: 3 إلى 6 ساعات من أجل مشروع بحجم أقل من 40 ساعة. “المفاجآت” ويقصد بها أن العميل قد يملك استضافة مبهمة ومعقدة (استضافة باللغة الصينية مثلا)، مشاكل غير متوقعة، تدريب العميل على استخدام بعض خواص ووردبريس: 0 إلى 8 ساعات لمشروع أقصر من 40 ساعة. كل المشاريع تقريبا تملك هذه الأعمال الجانبية، والبعض منها قد يملك أكثر إذا واجهت مشاكل في التواصل مع العميل، أو أن العميل يصر على حضورك شخصيًا إلى مكتب الشّركة. طريقة مرور الوقت في مشروع ما أغلب المشاريع تعطيك الشعور بأنك “تقريبا انتهيت من العمل” في أغلب وقت المشروع. هذا لأن الانتقال من “بناء الموقع” إلى “وضع الموقع أمام الملأ” يكشف الكثير من التفاصيل الجديد والتعقيدات التي قد لا تظهر في بداية العمل، كمثال الاستضافة بطيئة جدا، أو لا تعمل مع بعض الإضافات أو حتى مع القالب بسبب قدم نسخة PHP فيها مما يجعلك تنقل المشروع لاستضافة أخرى، أو أنّ نموذج “تواصل معنا” قد لا يعمل بشكل صحيح مع خدمة البريد الخاصة بالعميل. بناء الموقع (معظم ما تمت تغطيته في تقديم المشروع الأولي): 60% من عمر المشروع. الجزء الذي تشعر فيه أن العمل “سأنهيه اليوم”، نقل موقع جاهز، اختبار الموقع مع العميل، إصلاح بعض المشاكل التي لم تظهر من قبل، وتحسينات لم يكن تم الاتفاق عليها من قبل، وإضافات جديدة: 40% من وقت المشروع. دورة عمر المشروع الفعلية هذا هو الوقت المتوقع الكامل لتطوير موقع كامل قابل للاستخدام إلى جانب العمل الإضافي إلى جانب الأخذ بالاعتبار أنّ المشروع يصبح أكثر تعقيدا مع نهايته. الوقت الفعلي المطلوب لبناء موقع ووردبريس: المدة من “أقصر مدة لتطوير موقع ووردبريس” مضروبة في 1.5 إلى 3. مُعامل تضخيم الوقت يختلف من عميل لآخر ومن مشروع لآخر ومن مستوى التواصل مع العميل ولحظات إيجاد حل ما لمشكلة معينة. المشاريع التي يصعب تحديد حجمها، الأعمال التقنية هنا سنتكلم بشكل موجز حول مشاريع ووردبريس التقنية التي تتطلب أكثر من “تنصيب ووردبريس وتعديل قالب جاهز”. نتكلم عن هذه المشاريع بشكل منفصل لأن حجمها وقيمتها يصعب تحديدها لأن حجم المشروع لا يتعلق بمدة التواصل مع العميل بل من الطلبات التقنية فيه. هذا التعقيد يصعب تحديده في البداية المشروع (إذا كنت تعرف قيمة التعقيد فأنت في الأغلب قد وصلت لنهاية المشروع) لذا المشاريع التقنية يصعب تحديد قيمتها. بناء قالب لصفحة ووردبريس انطلاقا من تصميم PSD جاهز: 3 إلى 10 ساعات على حسب تعقيد التصميم. بناء موقع ووردبريس متكامل الخيارات على قالب مدفوع، مع تعديل كبير على التصميم والعديد من الإضافات الخاصة (مثل رزنامة شخصية خاصة وعارض صور معقد): 40 إلى 100 ساعة للمشروع. ربط وإعداد إضافة خارجية لجعل ووردبريس يقوم بعمل خاص لم يتم بناؤه من أجله (عرض الدورات، عرض عقارات، حجوزات مطاعم، تمويل المشاريع وجمع التبرعات): 15 إلى 100 ساعة. تصميم وتطوير موقع ووردبريس بقالب خاص تماما: 60 إلى 250 ساعة. كتابة إضافة جديدة تماما تحل مشكلة فريدة من نوعها لم يتم حلها من قبل: 20 إلى 300 ساعة. الوقت المطلوب لكتابة ونشر مقالة في خبرتي الشخصية، هذا هو الوقت المطلوب لإخراج مقالة إلى العلن: مقالة سريعة تتكلم عن موضوع ما: 2 إلى 4 ساعات. مقالة جيّدة، مدققة ومفكر فيها بشكل جيد: 4 إلى 7 ساعات مقالة طويلة بشكل غير معهود، مفكر فيها، بجودة عالية (النوع الذي ينتشر بكثرة وبسرعة) : 7 إلى 20 ساعة. خاتمة الهدف من هذه المقالة هو تحديد أرقام مبدئية لمشاريع ووردبريس، مع التذكير بأن هذه الأرقام غير مثالية أو خالية من الخطأ بل مبنية على خبرات شخصية وخبرات مجمعة. والآن، كيف تبدو لك هذه الأرقام، منطقية؟ خارج المعقول؟ أخبرنا برأيك وبتجربتك ترجمة -وبتصرّف- للمقال: How Long Does Building a WordPress Site Take? حقوق الصورة البارزة محفوظة لـ freepik
  10. إحدى أفضل ميزات الشبكات متعددة المواقع في ووردبريس تكمن بإمكانية سماحك للمستخدمين بإنشاء مواقع خاصة بهم، سواءً مجانًا أو لقاء أجر. السماح للمستخدمين بالتسجيل في شبكتك وإنشاء موقع خاص بهم هو أمرٌ بسيطٌ جدًا، كل ما عليك فعله هو تفعيل هذا الخيار في إعدادات الشبكة، لكن يمكنك إجراء تحسينات على هذه العملية وجعل تجربة المستخدم أفضل. هذا هو الدرس الخامس من سلسلة الشبكات متعددة المواقع في ووردبريس. ستتعلم في هذه السلسلة كل ما تحتاج له لكي تُنشِئ شبكتك، وتضيف المواقع إليها أو تسمح للمستخدمين بذلك، بالإضافة إلى إدارة الشبكة. وستتعلم كيف تتأكد أنَّ شبكتك آمنة وأداؤها عالٍ، وكيف يمكنك أن تُنشِئ مجتمعًا ناجحًا من المستخدمين والمواقع. ستتعلم في هذا الدرس كيفية ضبط عملية التسجيل في الموقع، ثم سنتحدث عن كيف سيتمكن المستخدمون من إنشاء مواقع خاصة بهم، وسنستكشف كيف نتمكن من جعل تلك العملية أبسط، وكيفية تخصيص رسائل التسجيل؛ ثم سننظر حول كيفية جعل عملية إنشاء موقع أسهل عبر استخدام إحدى الإضافات. قبل أن نبدأ في هذا الدرس، أنصحك أن تراجع الدروس السابقة في السلسلة، التي ستوفر لك خلفيةً صلبةً عن ميزة تعدد المواقع في ووردبريس وكيفية ضبطها، وإنشاء المواقع والمستخدمين على الشبكة، وتثبيت القوالب والإضافات، وكيفية ضبط إعدادات الشبكة. عندما تنتهي من الاطلاع على ما سبق، فسنبدأ درسنا بإجراء الخطوة الأساسية الأولى: تفعيل تسجيل المواقع. تفعيل تسجيل المواقع تسجيل المواقع هو ميزة من ميزات تعدد المواقع التي تُشكِّل جزءًا من ووردبريس، لذا كل ما عليك عمله هو تفعيلها؛ وذلك عبر صفحة إعدادات الشبكة في لوحة التحكم. اذهب إلى صفحة «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.
  11. فعّلنا في الدرس السابق شبكة المواقع في ووردبريس، وضبطتنا بعض الخيارات، وسنشرح في هذا الدرس إدارة المستخدمين والقوالب والإضافات. إدارة المستخدمين كما ذكرنا في الدرس السابق، يمكنك إضافة المستخدمين إلى موقعٍ معيّن عبر لسان 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.
  12. أهلًا بك مجددًا في دورتنا التدريبية، سنشرح في هذا الدرس من السلسلة كيفية تفعيل ميزة تعدد المواقع وتشغيل شبكتك. سأشرح لك عملية التثبيت، ثم سأريك كيف تُنشِئ موقعًا في شبكتك، وتضيف المستخدمين، وتُثبِّت القوالب والإضافات وتضبط خيارات الشبكة. سأشرح لك في هذه السلسلة كل ما تحتاج معرفته لإنشاء شبكتك الخاصة، وطريقة إضافة مواقع إليها، أو السماح للمستخدمين بإضافة مواقعهم الخاصة، وكيفية إدارة الشبكة. ستتعلم أيضًا كيف تتأكد أنَّ شبكتك آمنة وأنَّ أداءها عالٍ، وكيف تُنشِئ مجتمعًا ناجحًا من المستخدمين والمواقع. قبل أن نبدأ في هذا الجزء من السلسلة التعليمية، أنصحك أن تقرأ الدرسين الأولين: مدخل إلى ووردبريس مُتعدّد المواقع أمور إضافية يجب أن تعرفها قبل أن تُطلق أول شبكة لك على ووردبريس مُتعدّد المواقع اللذان يوفران تقديمًا إلى ميزة تعدد المواقع في ووردبريس. أقرأتهما من قبل؟ رائع! فلنبدأ. ما الذي ستحتاج له لكي تتابع دروسنا في هذه السلسلة، فستحتاج إلى ما يلي: نسخة ووردبريس مُثبَّتة. قد تكون هذه النسخة موجودةً عندك من قبل أو أن تكون قد ثبتها حديثًا. أنا أرى أن تعمل على نسخةٍ جديدةٍ لكي تحصل على أغلبية الخيارات ولكي تتفادى خطر تعطيل موقعك. لا تفعل ذلك على موقعٍ إنتاجي قبل أن تأخذ نسخةً احتياطيةً أولًا! محرر شيفرات برمجية لتعديل ملفَي 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.
  13. أهلًا بك مجددًا في الدرس الثاني من سلسلة تعلم الاستفادة من ميزة تعدد المواقع في ووردبريس. شرحنا في الدرس السابق بعض الأمور الأساسية التي عليك أن تضعها بعين الاعتبار عند التعامل مع شبكة من المواقع، وسنكمل ذلك في درسنا هذا. النطاقات اختلافٌ آخر في الشبكة متعددة المواقع هو النطاقات (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.
  14. إذا كنتَ من مطوري ووردبريس، فستُتحمّس للاستفادة من ميزة تعدد المواقع (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.
  15. 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.
  16. هل صنعت قالب 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 إلى ملفّات فرعية أخرى، لنقوم بإعادة استخدامها في أي ملف ضمن القالب. وفي القسم الأخير رأينا كيف يمكن جلب المقالات من قاعدة البيانات وإظهارها للمُستخدم مع عرض الوسوم الخاصّة بكل مقال. أرجو أن يكون الدرس سهلاً بسيطاً، في حال وجود أي استفسار أو مداخلة نرحّب به في التعليقات.
  17. سنتعلّم في هذا الدّرس كيفيّة استخدام 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.
  18. إذا أردت بناء موقع ووردبريس مميز وينسجم مع أهدافك الشخصية والتجارية فيجب عليك حذف بعض الأشياء المُحزّمة بشكل افتراضي مع ووردبريس. خبراء ووردبريس يملكون عادة قائمة من الأشياء لإضافتها وحذفها بشكل تلقائي والتي يقومون بها دون تردد. إذا ماذا تحتوي قائماتهم؟ القائمة التالية تحتوي على ما يمكنك فعله لجعل موقعك يعمل ويبدو أفضل من السابق. 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.
  19. مرّ معنا أثناء إضافة أرقام الصفحات كيف أضفنا ملف 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، هذه الآلية تسهّل كثيراً تنظيم الملفات والتعامل معها، ويجب الحرص على استخدامها بشكل دائم، فهي من المعايير والأشياء المتعارف عليها في تطوير قوالب وإضافات ووردبريس. أرجو أن يكون الشرح واضحاً ومفيداً، إن كان لديكم سؤال أو فكرة فلتشاركونا إياها في التعليقات.
  20. من خلال الأجزاء السابقة من سلسلة 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.
  21. قد تتفاجأ ببعض المشاكل في عرض الصور بعد تثبيت شهادة 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.
  22. إن دمج وسائل التواصل الاجتماعي مع موقعك هو أمر مهم للغاية -خاصة هذه الأيام- فهو سيساعدك على الانتشار والاشتهار سواء كنت تملك مدونة بسيطة أو شركة متعددة الجنسيات. توجد العديد من الملحقات التي ستساعدك على إضافة فيسبوك وتويتر وغيرها إلى موقعك، لكن من السهل أن تضيع بين المئات من الخيارات في قسم ملحقات ووردبريس. فعلى الرغم من وجود العديد من الملحقات المجانية إلا أن أغلبها تُرفع إلى قسم المُلحقات وتُنسى، ونادرا ما تجد ملحقًا يحصل على تحديثات مُستمرّة. في حين أنه لا يمكنك الاعتماد على ملحقات أخرى بسبب بطئ دعمها أو أنها لا تُقدّم مساعدة على الإطلاق. هذا هو السبب الذي يجعل الملحقات المدفوعة خيارًا موثوقًا لك ولمشروعك، فإن دعم المطورين والشركات عند الدفع للملحقات سيفعّل المميزات والخيارات والخدمات التي لا يمكنك الحصول عليها مجانا. إليك قائمة بـ 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.
  23. تعتبر خدمة 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.
  24. إحدى أبسط الطرق لزيادة حماية موقعك هي عن طريق اختيار اسم مخصص لحساب مدير ووردبريس (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
  25. التصنيفات (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.