-
المساهمات
203 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Ali Alrohia
-
تُعَد صفحة الكاتب من أكثر الصفحات زيارةً في أي موقع إلكتروني، فعندما يُعجب الزائر بالمحتوى، فإنه سيحاول التعرف على كاتبه لربط اسم الكاتب بصورة وجهه، ولذلك يجب أن يتضمن موقعك صفحات مميزة للكتّاب، كما يجب أن يتضمن كل مقال على صورة شخصية لكاتب المقال بجانب اسمه، إذ سيُساعد هذا الزوار على التواصل مع الكاتب بصريًا، كما يزيد من قوة ارتباط الزائر بالموقع ومحتواه. طبعًا تستطيع إنجاز ذلك باستخدام عدد من الإضافات أو الخدمات، غير أن خدمة Gravatar هي الأكثر انتشارًا وتميزًا، فهي تُستخدم من قِبل ووردبريس وعدة منصات أخرى لإضافة الصورة الشخصية للكاتب ضمن المقالات والتعليقات الخاصة به. ما هي الصورة الشخصية للكاتب في ووردبريس؟ هي عبارة عن صورة تظهر بجانب اسم الكاتب، فتكون إما صورةً تقليديةً للوجه أو صورةً ذات طابع مرتبط بعلامتك التجارية مثل شعار الشركة. يستخدم البعض صورةً شخصيةً افتراضيةً أو كرتونيةً، ويعتمد ذلك على نوع المحتوى الذي ينشره الكاتب وطبيعة القُرّاء، حيث تُساعد هذه الصورة الكاتب على جعل القُرّاء يتخيلونه كما يُريد. تُعَد خدمة Gravatar من أسهل الطرق لإضافة صورة شخصية للكاتب في ووردبريس، فما عليك سوى تسجيل حساب على Gravatar لتظهر لك نفس الصورة على جميع المواقع التي تكتب ضمنها، أو حتى تُعلّق على محتواها (بشرط استخدام نفس البريد الإلكتروني)، ليتعرف عليك الزوار بسهولة، حيث يُمكنك ضبط حسابك على Gravatar والتوقف عن التفكير به بل حتى نسيانه، لتظهر صورتك الشخصية على أي موقع أو خدمة دون تكبد عناء اختيار صورة شخصية، ولذلك فإن هذه الخدمة تستحق منك بعض الوقت لضبط حسابك عليها. كيفية إعداد Gravatar خاص بك تحقق أولًا من ملفك الشخصي على ووردبريس، وتأكد من استخدام نفس البريد الإلكتروني للتسجيل في خدمة Gravatar (فهذه هي طريقة Gravatar لتتعرف عليك عند نشرك مقالًا أو تعليقًا ضمن موقع ما)، بعد ذلك توجه إلى الأعضاء ثم حسابك (1) في القائمة الجانبية للوحة تحكم ووردبريس. تحقق من البريد الإلكتروني (2) التابع لحسابك وغيّره إن كنت تريد استخدام بريد مختلف مع Gravatar، ثم توجه لأسفل الصفحة لتجد قسم معلومات الاتصال وضمنه صورة حسابك، وهي الصورة التي تظهر ضمن ملفك الشخصي. تتضمن معظم قوالب ووردبريس دعمًا لغرافاتار Gravatar، لهذا اضغط على الرابط أسفل الصورة الذي يتضمن يُمكنك تغيير صورة ملفك الشخصي على (Gravatar (3 لتكون أول خطوة لتغيير صورة حسابك. تسجيل حساب في Gravatar ورفع صورتك الرمزية سوف ينقلك الضغط على الرابط السابق إلى موقع gravatar.com، ولكنك تستطيع التوجه مباشرةً لهذا الموقع في أي وقت، لهذا اضغط على اصنع غرافاتار خاص بك (1) إن كانت هذه أول مرة تستخدم Gravatar. سوف يُطلب منك الآن إنشاء حساب على WordPress.com، وذلك بإدخال اسم المستخدم والبريد الإلكتروني، إلى جانب كلمة المرور، وانتبه إلى أن عليك استخدام نفس البريد الإلكتروني لحسابك على موقع ووردبريس في الخطوة الأولى، فإن كان لديك حساب مًسبقًا فعليك تسجيل الدخول وحسب. تستطيع الآن ضبط الصورة من الصفحة التالية بالضغط على (Add a new image (1، أو إضافة عنوان بريد إلكتروني آخر بالضغط على (Add email address (2، ولكنك لست بحاجة لهذا طالما أنك تستخدم نفس البريد الإلكتروني في موقعك ومنصة ووردبريس. اضغط على (Add a New Image (1 لتظهر لك النافذة التالية، بعد ذلك اضغط على خيار رفع الصورة (Upload new (3. سوف تظهر لك نافذة جديدة تسمح لك برفع صورة، مع التنبيه على أن الحد الأعظمي لحجم الصورة هو 10 ميجا بايت، وهنا اختر الصورة التي تريدها أن تظهر في حساباتك الشخصية لمختلف المواقع التي تدعم Gravatar، وبعد ذلك اضغط على Next. بهذا يكون قد بقيّ عليك فقط اختيار تقييم للصورة (7) حتى يتمكن موقعك وغيره من عرضها على الجمهور المناسب فقط. اضغط على Set Rating ليُصبح الغرافاتار Gravatar الخاص بك جاهزًا للاستخدام. سوف تُلاحظ أنّ الصورة قد أصبحت موجودةً ضمن حسابك على موقعك الإلكتروني أو أينما وُجد تعليق لك تلقائيًا، وذلك طالما أنك تستخدم عنوان البريد الإلكتروني ذاته المُستخدم لضبط الغرافاتار Gravatar. السماح للمستخدم رفع صورة أفاتار مباشرة على ووردبريس لاحظ أن الحالة الافتراضية لصورة الحساب لا تسمح لك بتعيين الصورة إلا من خلال خدمة Gravatar، والذي يجده البعض أمرًا مزعجًا. لذلك تستطيع استخدام إضافة Simple Local Avatars التي تسمح للمستخدم برفع صورة حساب شخصي بأبعاد محددة. تُحفظ الصور التي تستخدمها هذه الإضافة ضمن مكتبة وسائط ووردبريس، حيث تُرفع لمجلد uploads في تثبيت ووردبريس، وتستطيع تحديد رتب ووردبريس التي يُسمح لها بتغيير صورتها الشخصية باستخدام هذه الإضافة. طبعًا لا حاجة للقلق حول حجم الصورة لأن هذه الإضافة ستعمل على تخفيض الحجم كما تفعل خدمة Gravatar، كما يُمكنها تحديد تقييم الصور عند رفعها، وكذا تحديد التقييم المسموح له بالظهور على الموقع. تسمح إضافة User Profile Picture لمستخدم ووردبريس بتغيير صورته الشخصية شرط امتلاكه لصلاحيات رفع الصور (يجب أن يكون برتبة مؤلف أو أعلى)، وبالتالي لا نستطيع عدّها بديلًا لخدمة Gravatar، ومع ذلك فهي تُعَد مناسبة لمن يريد السماح للمؤلفين على موقعه اختيار صورهم الشخصية دون اللجوء لخدمة خارجية مثل Gravatar. ينصح البعض بإلغاء تفعيل خدمة Gravatar تمامًا لرفع أداء الموقع، وذلك لأن عملية الاتصال بالخدمة وجلب الصورة يضيف تأخيرًا زمنيًا لتحميل الصفحة، ولذلك فإن كنت ممن يبحثون عن أداء مثالي لمواقعهم، فيُمكن استخدام إضافة Disable User Gravatar التي يُعَد ضبطها بسيط، فعند تفعيلها سيتوقف موقعك عن استخدام خدمة Gravatar، وهنا تستطيع اختيار الصورة الافتراضية لحسابات المشتركين لديك. الخلاصة لقد أصبح اسمك مقترنًا مع الصورة التي تستخدمها لملفك الشخصي، وهي طريقة رائعة للتواصل مع جمهورك، كما أنّ استخدام Gravatar لصورة حسابك الشخصي يُعَد أمرًا مساعدًا لك في بناء اسم لك في عالم المحتوى، كما يُسهل على القُرّاء تمييزك بالرغم من ضخامة المحتوى المنشور يوميًا أو حتى عند نشر شخص لمحتوى مُشابه وباسم مُطابق. ترجمة -وبتصرّف- للمقال How to Add a WordPress Author Bio Image لصاحبه B.J. Keeton. اقرأ أيضًا كيفية إضافة مستخدمين جدد لموقع ووردبريس كيفية تخصيص صفحة ملفك الشخصي على ووردبريس 9 طرائق لحماية صور مدونتك على ووردبريس من السرقة نصائح لتمكين المستخدمين غير المتخصصين من صيانة مواقع ووردبريس
-
يرغب الجميع بأن يصبح خبيرًا، إذ يوجد على مر السنين نوعان من البشر يُدعون "الخبراء"؛ حيث خبراء النوع الأول هم ممن يعرفون جميع الأدوات المتوفرة في لغة البرمجة ويحرصون على استخدام كل جزئيةٍ منها سواءً كانت تُفيدهم أم لا؛ والنوع الثاني هم ممن يعرفون كل جزئيةٍ من لغة البرمجة ولكنهم انتقائيون بما يجب استخدامه لحل المشاكل البرمجية، حيث يأخذون بالحسبان مجموعةً من العوامل المرتبطة بالشيفرة البرمجية وأمورًا أخرى غير برمجية. يمكننا تخمين أي نوعٍ من هؤلاء الخبراء يرغب مدير الفريق العمل معهم، إذ يقع الاختيار غالبًا على النوع الثاني من الخبراء، فهم مطورون يركزون على تسليم سطورٍ برمجيةٍ مقروءة من جافاسكربت ومفهومةٍ أيضًا، كما يعملون على صيانتها، إضافةً إلى قدرتهم على جعل المعقد يبدو بسيطًا. هناك عدة عواملٍ يجب النظر إليها من قِبل الخبراء عند كتابة شيفرةٍ مقروءة، وتحديد الخيارات الواضحة الصحيحة منها والخاطئة. الخيار الواضح لقد أضاف TC39 الكثير من الميزات الجديدة إلى ECMAScript خلال السنوات الماضية بهدف تحسين تجربة المطوّر، حيث تتضمن هذه الميزات أنماطًا مُحسنةً ومستوحاةً من لغاتٍ أخرى، وأحد هذه الإضافات في ES2019 هي Array.prototype.flat()، حيث يُطلب مُدخلٌ واحدٌ وهو العمق أو Infinity لنشر مصفوفة، ويكون العمق الافتراضي عند عدم استخدام أي مدخلٍ هو 1، وبدون هذه الإضافة كان علينا استخدام الصيغة التالية لنشر المصفوفة في مستوٍ واحدٍ. let arr = [1, 2, [3, 4]]; [].concat.apply([], arr); // [1, 2, 3, 4] أما عند إضافة flat() أصبح من المُمكن التعبير عن نفس الوظيفة باستخدام تعليمةٍ واحدةٍ وهي الدالّة التالية. arr.flat(); // [1, 2, 3, 4] يُعَد السطر الثاني من الشيفرة أكثر قابليةً للقراءة، وسوف يتفق على هذه النقطة كِلا النوعين من الخبراء. لا يعلم جميع المطورين بوجود الدالّة flat() وهم ليسوا بحاجةٍ لذلك، وعند ورودها فإن flat سيكون فعلًا يصف نفسه ويتضمن محتوى ما يفعله وهي أسهل للفهم من concat.apply(). من النادر وجود جوابٍ واضحٍ وصريح بأفضلية الصيغ الجديدة عن القديمة، وسوف يختار الخبير -لأي مجموعةٍ كان ينتمي- الخيار الثاني إن كان على علمٍ بكلا الخيارين لكتابة التعليمات، لأن الخبير يميل لاختيار الشيفرة الأقصر والأوضح والتي تسهل صيانتها وتتبع الخطأ فيها. الفحص الداخلي تتميز لغة جافاسكربت بأنها متعددة الاستخدام وواسعة الانتشار، فهي مُستخدمة في جميع أجزاء شبكة الويب، ويمكن كتابة الشيفرة نفسها بعدة طرقٍ ولكن لن تتمكن من تحديد الخيار الصحيح ما لم تفهم جيدًا الخيارات المتوفرة والقيود التي تُرافق كل منها. ستُستخدم البرمجة الوظيفية مع map() مثالًا لذلك وستُشرح جميع التكرارات التي تعطي نفس النتيجة، ويُعَد المثال التالي النسخة الأقصر من الأمثلة التي تستخدم map() حيث يتسع في سطرٍ واحدٍ. const arr = [1, 2, 3]; let multipliedByTwo = arr.map(el => el * 2); // multipliedByTwo is [2, 4, 6] سيُضاف مِحرفان فقط إلى المثال التالي وهما قوسان "()"، حيث توجد دائمًا خسارةٌ وكسب بعد أي تغيير، كما يوجد اختلافُ عند استخدام دالةٍ متعددة المتغيرات الأقواس دائمًا، ولا يوجد ضررٌ في إضافة هذين القوسين هنا فهما يحسّنان التناسق عند كتابة دالةٍ متعددة المتغيرات، وحقيقةً يجبرنا Prettier على استخدام الأقواس، فهو لا يسمح بإنشاء دالةٍ سهميّةٍ دون استخدام الأقواس. let multipliedByTwo = arr.map((el) => el * 2); ستُرفع سوية المثال وتُضاف أقواس مجموعة وتعليمة return لتبدو هذه الدالّة أشبه بالدوال التقليدية. هذه الإضافات مطلوبة عندما تكون الدالّة أكثر من سطرٍ واحد، وبالتأكيد ستُكتب العديد من الدوال المتضمنة أكثر من سطر واحد ضمن الشيفرة البرمجية. let multipliedByTwo = arr.map((el) => { return el * 2; }); ستُزال الآن الدالّة السهمية وتُستخدم نفس صيغة المثال السابق لكن مع استخدام الكلمة المفتاحية function، وهذا مثير لأن هذه الصيغة سوف تعمل في جميع الحالات، ولن ينتج أي خطأ مهما كان عدد المتغيرات أو السطور، وذلك نظرًا لكونها مقروءةً ومألوفة أكثر من الصيغة المستخدمة في المثال الأول، ولكن هل هذا التغيير سيء؟ وكيف سيكون وقعه على مُبرمجٍ جديد أو شخصٍ خبير جدًا بلغةٍ مختلفةٍ عن جافاسكريبت؟ هل سوف تُشكل هذه الصيغة عبئًا على شخص يعرف جافاسكربت جيدًا بالموازنة مع المثال الأول؟ let multipliedByTwo = arr.map(function(el) { return el * 2; }); وصلنا الآن إلى الخيار الأخير وهو تمرير الدالّة فقط، حيث يمكن كتابة timesTwo بأي طريقةٍ تريدها ولا توجد مشكلة يُسببها تمرير اسم الدالّة في أية حالة، لكن لنتوقف للحظة ونفكر فيما إذا كانت هذه الصيغة تُسبب الحيرة أم لا، فإذا كنت جديدًا على طريقة كتابة هذه الشيفرة، فلن يكون واضحًا لك أن timesTwo هي دالّة وليست كائنًا، ولكن map() موجودة لتُعطيك تلميحًا، لذلك هناك العديد من الأمور الهامة الواجب الانتباه إليها وهي امكانية إغفال هذه الدالة، وسهولة العثور عليها، وتأثيرها على النتيجة. const timesTwo = (el) => el * 2; let multipliedByTwo = arr.map(timesTwo); لا توجد إجابةٌ واضحةٌ هنا، حيث أن اتخاذ الخيار الصحيح لطريقة كتابة الشيفرة يعني فهم جميع الخيارات المتوفرة ومحدوديتها، كما يجب إدراك أن التناسق يتطلب استخدام أقواس المجموعة والأقواس العادية والكلمة المفتاحية return. يجب أن تسأل نفسك مجموعةً من الأسئلة عند كتابة شيفرة برمجية، والأسئلة المرتبطة بالأداء هي الأكثر رواجًا، ولكن عندما تنظر إلى شيفرة برمجية متطابقة من الناحية الوظيفية، فيجب أن يكون اختيارك مبنيًا على الإنسان وكيفية فهم غيرك لهذه الشيفرة. ليس بالضرورة أن يكون الأحدث هو الأفضل طُرح حتى الآن مثالٌ يوّضح أي صيغةٍ برمجيةٍ جديدةٍ، بحيث يستخدم كل نوعٍ من الخبراء حتى وإن كانت غير معروفةٍ عالميًا، كما طُرح مثالٌ يدعو للكثير من التساؤلات دون إجاباتٍ كافية، وأصبح الوقت الآن مُناسبًا للتعمق أكثر في الشيفرة البرمجية التي كُتبت سابقًا ثم أُزيلت، وهي الشيفرة البرمجية التي استخدمت صيغًا غير معروفة على نطاقٍ واسع لحل مشكلة، إضافةً إلى قابلية صيانتها بالاعتماد على القواعد المعروفة لكتابة الشيفرة. يسمح لك التعيين بالتفكيك Destructing assignment؛ إمكانية تفريغ القيم من الكائنات (أو المصفوفات) وهو مماثل للشكل الآتي. const {node} = exampleObject; وهو يُهيئ متغيرًا ويُسند له قيمةً في سطرٍ واحد ولكن هذا غير ضروري. let node ;({node} = exampleObject) يُسنِد السطر الأخير من الشيفرة البرمجية قيمةً للمتغير باستخدام التفكيك، لكن التصريح عن المتغير يشغل سطرًا قبله، وهذا أمرٌ يرغب الكثير باستخدامه، إلا أن الغالبية لا تُدرك إمكانية ذلك. نلاحظ عند النظر إلى الشيفرة بتمعُّن؛ وجود الفاصلة المنقوطة غير المُستخدمة لإنهاء السطر كما جرت العادة، إضافةً إلى استخدام الأقواس للإحاطة بالتعليمة واستخدام أقواس مجموعة داخلها أيضًا، وبالتأكيد فإن وظيفة هذه التعليمة غير واضحة، فمن الصعب قراءتها، و يجب ألا تكون موجودة في أي شيفرةٍ مكتوبة من قِبل خبير. let node node = exampleObject.node تحل هذه الشيفرة المشكلة فهي تعمل ووظيفتها واضحة، كما يسهل فهمها دون الحاجة للبحث عنها، وبالتالي فلا يجب استخدام الصيغة التفكيكية فقط لأننا نستطيع ذلك. الشيفرة ليست كل شيء كما هو ملاحظ فقد كان حل خبراء النوع الثاني واضحًا بالاعتماد على الشيفرة فقط، ومع ذلك لا يزال هناك فرقٌ واضحٌ بالنسبة للشيفرة التي يكتبها كل خبير، وذلك لأن الشيفرة موجهةٌ للآلة كي تقرأها وللإنسان كي يُفسرها، وبالتالي لا توجد عوامل مرتبطة بالشيفرة هنا لأخذها بالحسبان. تختلف صيغة لغة البرمجة التي تستخدمها من أجل فريقٍ من مطوّري جافاسكربت عن تلك التي تستخدمها من أجل فريقٍ متعدد اللغات لم يتعمق أفراده في تفاصيل اللغة، ونذكر على سبيل المثال الصيغة spread مقابل concat()، حيث أُضيفت spread إلى ECMAScript منذ عدة سنوات واعتُمدت على نحوٍ واسعٍ، فهي تُعَد ميزةً للصيغة تسمح لك بإنجاز العديد من الأمور وأحدها هو تعاقب تسلسل مجموعةٍ من المصفوفات. const arr1 = [1, 2, 3]; const arr2 = [9, 11, 13]; const nums = [...arr1, ...arr2]; بالرغم من فعالية وقوة spread إلا أنها ليست رمزًا بديهيًا تستطيع التنبؤ بعمله، وبالتالي إن كنت لا تعلم وظيفته فلن يكون مفيدًا. بينما يعتقد العديد من الخبراء أن هذه الصيغة مألوفةً بالنسبة لفريقٍ من مُختصي جافاسكربت، يتساءل خبراء النوع الثاني عما إذا كان هذا الكلام صحيحًا بالنسبة لفريقٍ من المبرمجين متعددي اللغات، لذلك فمن المُحتمل أن يختار هؤلاء الخبراء استخدام concat() بدلًا من spread لأن اسمها يُعبّر عن عملها. ينتج عن الشيفرة البرمجية التالية نفس النتيجة التي تُقدمها spread في المثال السابق. const arr1 = [1, 2, 3]; const arr2 = [9, 11, 13]; const nums = arr1.concat(arr2); كان هذا أحد الأمثلة لتأثير العامل البشري على خيارات الشيفرة البرمجية، لذلك عند التعامل مع شيفرةٍ برمجيةٍ تعمل عليها فرقٌ مختلفة، فلا بد من الالتزام بمعاييرٍ صارمةٍ لا تراعي بالضرورة الصيغة الأحدث للغة البرمجة، وتنتقل بعد ذلك لعواملٍ أخرى مرتبطة بالأدوات المُستخدمة والتي تجعل العمل أكثر سلاسةً أو صعوبةً لأفراد الفريق. توجد شيفرات برمجية من الصعب اختبارها، وشيفرات من الصعب استخدامها على مجالٍ أوسع في المستقبل نظرًا لصعوبة إضافة وظائف إضافية لها، وشيفرات ذات أداءٍ ضعيف، وشيفرات لا تستطيع التعامل مع متصفحاتٍ مختلفة، وهذه جميعها عواملٌ يُفكر بها خبراء النوع الثاني، إضافةً إلى تأثير الأسماء المستخدمة. ولكن حتى هم لا يستطيعون اعتماد صيغةٍ صحيحةٍ معظم الوقت لهذا الأمر. الخلاصة لا يُثبت الخبير نفسه من خلال قدرته على استخدام كل جزئية من خواص لغة البرمجة، بل من خلال معرفة ما يكفي من هذه الخواص لاستخدامٍ حكيمٍ لصيغةٍ برمجية واتخاذ القرارات المناسبة، فهكذا يكون الخبراء، وبهذه الطريقة يساهمون في تخريج خبراء جُدد، وهذا يعني الكثير لمن يجد نفسه خبيرًا أو يطمح إلى أن يصبح خبيرًا، إذ عليه أن يسأل نفسه العديد من الأسئلة عند كتابة شيفرة برمجية والتفكير بمن يُتابعه من المطوّرين، حيث أن أفضل شيفرةٍ برمجية هي تلك التي تُنفِذ شيئًا معقدًا، ولكنها بنفس الوقت مفهومةٌ عند مراجعتها من قِبل فريق العمل، وهذا بالطبع ليس أمرًا سهل المنال ولا توجد طريقةٌ واضحةٌ للوصول له لكن لا بد من أخذه بالحسبان عند كتابة أي دالّة. ترجمة -وبتصرّف- للمقال Human-Readable JavaScript: A Tale of Two Experts لصاحبه Laurie Barth. اقرأ أيضًا تطويع البيانات في جافاسكربت التخاطب بين نوافذ المتصفح عبر جافاسكريبت مشروع تطبيقي لبناء رجل آلي (روبوت) عبر جافاسكريبت
-
توجد العديد من الإعدادات التي عليك معرفة عملها وضبطها في ووردبريس، وهذا ناتج عن المرونة الكبيرة التي يتمتع بها، حيث تختصر الخيارات الموجودة ضمن صفحة "عام" من إعدادات ووردبريس من الوصف، فهي مليئة بالخيارات غير المرتبطة ببعضها، ومع ذلك فهي في الحقيقة أبسط مما تبدو. سوف نطلعك في هذا المقال على الخيارات المتوفرة في صفحة "عام" من إعدادات ووردبريس وكيفية ضبطها للحصول على ما يُناسبك. مقدمة عن الخيارات الموجودة في صفحة عام تختلف إعدادات صفحة "عام" عن مثيلاتها في ووردبريس التي تُركز عادةً على صنف معين، حيث تتضمن صفحة "عام" مجموعةً واسعةً من الخيارات الأساسية لموقعك، مثل صيغة التاريخ والمنطقة الزمنية وعنوان الموقع واللغة، لتبدو هذه الصفحة مثل مستودع يجمع الإعدادات التي لا تملك مكانًا آخر يمكن أن تُضاف له، وبالرغم من ذلك فهي تُعَد مهمة جدًا لعمل موقعك وأمنه وكذا تجربة المستخدم. تستطيع الوصول لهذه الصفحة من لوحة تحكم ووردبريس بالضغط على "عام"، وذلك ضمن قسم "إعدادات". كيفية ضبط إعدادات صفحة عام General في ووردبريس يوجد 12 خيارًا ضمن صفحة "عام" التابعة لإعدادات ووردبريس، والتي يُمكن تصنيفها لخمسة أنواع، بحيث سنوضح كيفية ضبطها في الأقسام التالية. هوية الموقع إن حقل "اسم الموقع" هو نفسه اسم موقعك أو مدونتك، حيث يُعرض عادةً ضمن الترويسة ولسان المتصفح ليظهر للجميع في كل الصفحات. يلعب "اسم الموقع" دورًا مهمًا جدًا في التسويق لعلامتك التجارية وتحسين محركات البحث (سيو)، لذلك فإن وُجد خطأ في عرضه، فتستطيع إصلاحه من خلال صفحة "عام". يستخدم الغالبية شعار موقعهم من أجل ملء "وصف الموقع"، رغم أن الأفضل هو استخدامه لوصف موقعك ومحتواه، إذ تعرِض معظم القوالب "وصف الموقع" بجانب اسم الموقع أو أسفله. املأ وصف موقعك بحكمة لأنه سوف يساعدك في تحسين محركات البحث (سيو)، ولذلك فمن المهم تضمين كلمات مفتاحية يبحث عنها زوارك، مع الإبقاء على الوصف جذابًا ومقروءًا، وكما يظهر من الصورة السابقة فإن وصف موقع Ahrefs يحمل معلومات، كما يتضمن عدة كلمات مفتاحية يبحث عنها الزوار مثل "SEO pro" و"rank higher" و"get more traffic". عنوان ووردبريس URL وعنوان الموقع URL عنوان ووردبريس هو الرابط الكامل للمسار الذي يحتوي على ملفات تثبيت ووردبريس، وفي غالب الحالات فإن عنوان ووردبريس هو عنوان الموقع، ولكن إن نصّبت ووردبريس ضمن مسار خاص به، فعليك التصريح به هنا؛ أما عنوان الموقع فهو كما يُشير إليه الاسم، فهو رابط موقعك الإلكتروني وهو نفسه عنوان ووردبريس، إلا في حال تثبيت ووردبريس ضمن مسار مختلف. تُملأ هذه الحقول في معظم عمليات التثبيت تلقائيًا، بحيث يكون عليك تغييرها فقط عند تعديل بنية ملفات موقعك أو لحل بعض المشاكل. عنوان البريد الإلكتروني للإدارة يُرسل ووردبريس الإشعارات لهذا العنوان والتي تكون في العادة مرتبطةً بأمور إدارية، مثل تسجيل مستخدم جديد أو تعليقات جديدة أو تحديث إضافات. تستطيع استخدام البريد الإلكتروني الذي تريده لأنه لن يُعرض للعلن أبدًا، ولكن من المهم تغيير محتوى هذا الحقل عند تغيير عنوان البريد الإلكتروني الذي تريد استقبال الإشعارات عليه، وسيُذكرك ووردبريس دوريًا بالتحقق من هذا العنوان. تسجيل المستخدم سوف تجد تحت "العضوية" مربع "السماح بالتسجيل"، حيث سيُصبح زوار الموقع من خلال الضغط عليه قادرين على التسجيل به، وهذا مفيد إن أردت من المستخدم الولوج للموقع ليتمكن من كتابة تعليق أو الدخول لأجزاء معينة من الموقع. سوف تجد أسفل هذا الخيار "الرتبة الافتراضية للأعضاء الجدد" وهي عبارة عن قائمة منسدلة تتضمن الرُتب الافتراضية لووردبريس، وهو مهم جدًا عند تفعيل التسجيل ضمن الموقع لتحديد الرُتبة للمسجلين الجُدد، وبالتالي الصلاحيات التي يمتلكونها. توجد خمس خيارات افتراضية تتمثل في الآتي: المدير: يمتلك وصولًا كاملًا لجميع وظائف وأجزاء الموقع. المحرر: يستطيع نشر وإدارة المقالات لجميع المستخدمين ضمن الموقع. الكاتب: يستطيع نشر وإدارة المقالات التابعة له فقط. المساهم: يستطيع كتابة وإدارة مقالاته فقط ولكن لا يستطيع نشرها. المشترك: يستطيع إدارة حسابه الشخصي فقط. من الممكن أن تجد رُتبًا أخرى إلى جانب الرُتب الافتراضية للوردبريس، وذلك بناءً على ما لديك من إضافات، فعلى سبيل المثال عند تثبيت إضافة ووكومرس، فإنها تُضيف رتبتي "الزبون" و"مدير المتجر". يجب اعتماد رتبة "مشترك" لتكون رتبةً افتراضيةً لجميع المُسجلين، إلا إن كانت لديك عوامل أمان تسمح لك بالتحكم بمن يُسجل ضمن الموقع، وتُعَد رتبة "الزبون" خيارًا آمنًا للمتاجر الإلكترونية. إعدادات اللغة والتاريخ والوقت يتضمن آخر قسم من صفحة "عام" كلًا من إعدادات الوقت والتاريخ واللغة، حيث تُستخدم اللغة التي تختارها من القائمة المنسدلة في "لغة الموقع" ضمن لوحة تحكم ووردبريس فقط، فهي لا تعمل على ترجمة محتوى الموقع أو القالب أو الإضافات، ولهذا يجب اختيار اللغة بناءً على اللغة التي يستخدمها غالبية رواد الموقع. تُفيد إعدادات الوقت في تنفيذ الأمور المُجدولة مثل نشر مقال في تاريخ ووقت محددين، حيث يعتمد وقت وتاريخ النشر على إعدادات الوقت هذه، إذ تُعدل ساعة الموقع بالاعتماد على المنطقة الزمنية، وهذا يؤثر على التوقيع الزمني للتعليقات والمنشورات، ولضبطه فما عليك سوى عليك اختيار مدينة ضمن منطقتك الزمنية من القائمة المنسدلة، وإذا لم تستطع العثور على مدينتك، فتستطيع هنا استخدام التوقيت العالمي المنسق UTC، مثل UTC +3 لمنطقة الخليج العربي عدا الإمارات وعُمان، كما تستطيع التحكم بصيغة الوقت والتاريخ باستخدام صيغ مُعرفة أو باستخدام صيغة خاصة بك. اطلع على التوثيق الرسمي للوردبريس إن أردت استخدام الصيغة المخصصة لمعلومات أكثر عن الموضوع، حيث يتحكم هذا الخيار فقط بصيغة التاريخ عند عرضه ضمن الموقع، ولكنه لا يُغير العرض ضمن لوحة تحكم المدير. نفس الأمر ينطبق على صيغة الوقت والتي تتحكم بطريقة عرض الوقت ضمن الموقع ولكن ليس ضمن لوحة تحكم ووردبريس، حيث يتحكم الخيار الأخير ضمن الصفحة في تحديد أي يوم من الأسبوع سيظهر أولًا في التقويم ضمن موقعك، والخيار الافتراضي هو يوم الاثنين، ومع ذلك تستطيع اختيار أي يوم تريد. الخلاصة يُمكن أن تكون الخيارات العديدة التي يوفرها ووردبريس متعبةً في بعض الأحيان للمستخدمين الجدد أو المتمرسين على حد سواء، وذلك لأن هناك عدة صفحات للإعدادات فقط للتثبيت العادي -أي قبل تثبيت أي إضافات جديدة-، ولكن حالما تطلع على ما تنظر إليه فستُصبح هذه الخيارات سهلة الإدارة والتحكم. لقد تحدثنا في هذا المقال عن الخيارات المتوفر في صفحة "عام" من إعدادات ووردبريس بالتفصيل، وذلك بدءًا من عنوان الموقع وانتهاءً بصيغة التاريخ وأول يوم من الأسبوع، لذلك تستطيع الآن تخصيص هذه الإعدادات بما يتناسب مع زوار موقعك ومتطلباتك. ترجمة -وبتصرّف- للمقال How to Configure Your WordPress General Settings لصاحبه Will Morris. اقرأ أيضًا كيفية إضافة مستخدمين جدد لموقع ووردبريس التعرف على لوحة التحكم بشاشة الصفحات في ووردبريس كيفية إنشاء وإدارة صفحات ووردبريس شرح مفصل لصفحات الإدارة وكيفية التحكم الكامل بموقع ووردبريس كيفية تخصيص صفحة ملفك الشخصي على ووردبريس
-
توجد العديد من الأسباب التي تدفعك لإنشاء عدة حسابات للمستخدمين على موقعك، مثل امتلاك فريق من الموظفين الذين يتعاونون فيما بينهم لإدارة موقعك بكامل أجزائه، أو إنشاء المحتوى والمبيعات والدعم التقنيمثلًا، وإضافةً لما سبق فإنّ السماح للزوار بالتسجيل ضمن الموقع، سيزيد من ولائهم لعلامتك التجارية أكثر فأكثر، كما سيزيد من احتمال عودتهم للشراء مرةً ثانيةً من موقعك. يسمح لك ووردبريس بإضافة مستخدمين جُدد بصلاحيات ورُتب متنوعة، حتى تختار المناسب منها عند إنشاء حساب جديد. سوف نطلعك في هذا المقال على الأنواع المختلفة لرُتب المستخدم المتوفرة افتراضيًا في ووردبريس، وبعد ذلك سنعلّمك طريقتين لإضافة مستخدم جديد. مقدمة عن رتب مستخدمي ووردبريس يجب عليك فهم آلية عمل الرُتب في ووردبريس قبل البدء بإضافة مستخدمين جُدد لموقعك، حيث تُوفر المنصة 5 أنواع رئيسية لحسابات المُستخدمين لأسباب مرتبطة بالخصوصية والأمن. يمنع هذا الأمر من دخول أي شخص وإضافة أو حذف إضافات من موقعك أو حتى نشر مقالات، أو تغيير إعدادات ووردبريس على سبيل المثال لا الحصر. أما عن رُتب مُستخدمي ووردبريس الخمس، فهي تتمثل في الآتي: مشترك: هي الرتبة الأكثر محدودية، حيث يُسمح للمستخدم برتبة مشترك بأن ينشئ ملفًا شخصيًا، ولكنه لا يستطيع نشر أو تعديل المنشورات، ومع ذلك فهو يستطيع إضافة تعليق دون الحاجة لإدخال معلومات الدخول في كل مرة، كما يتلقى الإشعارات ويستطيع الولوج للمحتوى الخاص. مساهم: يمتلك المُساهم نفس صلاحيات المُشترك، ويُضاف لها إمكانية تعديل وحذف المنشورات الخاصة به، ولكنه لا يستطيع نشر محتوى أو رفع ملفات وسائط متعددة. كاتب: تُضيف هذه الرتبة صلاحية نشر المقالات المكتوبة من قِبل المستخدم، حيث يستطيع الكاتب من خلالها رفع الوسائط مثل الصور ومقاطع الفيديو لاستخدامها ضمن المقال. محرر: يمتلك المحرر جميع إمكانيات الكاتب، ويستطيع تعديل المقالات المنشورة من قِبل مستخدمين آخرين، غير أنه لا يستطيع الوصول لأقسام ضمن لوحة تحكم ووردبريس مثل الإضافات أو المظهر أو الإعدادات. المدير: يمتلك حساب المُدير وصولًا كاملًا للوحة التحكم، حيث يستطيع المستخدِم برتبة مُدير إضافة وتعديل الصفحات والمقالات، وكذا تثبيت الإضافات والقوالب، إلى جانب الوصول لإعدادات ووردبريس، مع قدرته على تعديل حسابات باقي المُستخدمين. توجد من الناحية التقنية رُتبة سادسة هي المدير العام، ولكنه مُستخدم فقط في شبكة ووردبريس متعددة المواقع ليكون الحساب صاحب هذه الرتبة مديرًا للشبكة بما تحتويه من مواقع، بحيث يمتلك الوصول لكافة مكونات هذه المواقع. وستُلاحظ ظهور المزيد من الرتب عند تثبيت بعض الإضافات. إضافة رتبة جديدة لمستخدمي ووردبريس لقد أشرنا سابقًا لدور الرُتب في أمن موقع ووردبريس، لذلك فمن المُستحسن تعيين رتبة عند إضافة أي مُستخدم جديد، حيث يُمكن للمستخدم عن طريق الخطأ التسبب بمشاكل لموقعك عند عمل تغييرات وذلك دون فهم العواقب الناتجة عنها. يُفضل عند تعيين رتبة للمستخدم؛ أن تُستخدَم الرتبة ذات الصلاحيات الأدنى التي تسمح له بأداء المطلوب منه، فعلى سبيل المثال يجب حصر رتبة مدير للمستخدمين الذين يحتاجون وصولًا غير محدود ضمن الموقع، وذلك كي لا يتمكن أحد من تعطيل إضافة هامة ضمنه عن طريق الخطأ، أو تعديل الشيفرة البرمجية للموقع من خلال محرر القالب. يجب أن تكون رتبة المشترك هي الرتبة الافتراضية في معظم الحالات للمستخدمين الجُدد ضمن موقعك، فهذا يضمن لك التحكم بمن يستطيع إنشاء المقالات. ولتعيين الرتبة الافتراضية لمستخدمي موقعك الجُدد ما عليك سوى التوجه لصفحة "عام" ضمن "الإعدادات". تستطيع توزيع الرتب كما يتطلب منك سير العمل، حيث ستحتاج مثلًا لمحرر يتحكم بنشر المقالات، وعدة مساهمين يعملون على كتابة المقالات، وهكذا تستطيع تقليل التعارض عند النشر، وكذا الحفاظ على التوازن في الجدول الزمني لنشر المقالات. كيفية إضافة مستخدم جديد لموقع ووردبريس يدويا لقد أصبح من الآمن الآن لك إنشاء حسابات جديدة في ووردبريس بعد أن أصبحت لديك فكرة عن كيفية تصنيف ووردبريس لحسابات المستخدمين، وتُعَد عملية إضافة مستخدم جديد لووردبريس بسيطةً جدًا، حيث تتطلب منك امتلاك حساب مدير لتتمكن من ذلك، ولإضافة المستخدم الجديد، فما عليك سوى اتباع التوجه أولًا إلى لوحة تحكم ووردبريس ومنها إلى "الأعضاء"، ثم إلى "أضف جديدًا". املأ الآن بيانات المستخدِم الجديد، حيث يجب أن يكون "اسم المستخدم" غير مُستخدَم من قبل، والأمر نفسه ينطبق على البريد الإلكتروني للمستخدِم والذي يتلقى من خلاله الإشعارات. تستطيع تخطي حقل الاسم والموقع الإلكتروني، فهما غير إلزاميّان ولكنهما يوفران معلومات إضافية عن المستخدم عند الدخول لملفه الشخصي على الموقع؛ أما فيما يخص كلمة المرور، فتستطيع استخدام كلمة مرور خاصة بك أو استخدام خيار "توليد كلمة مرور" ليُنشئ لك ووردبريس كلمة مرور عشوائية. تستطيع اختيار إرسال إشعار إلى المستخدم عبر بريده الإلكتروني لإعلامه بأنّ حسابه قد أصبح جاهزًا، إذ يُعَد هذا مفيدًا للمستخدم الذي يريد إجراء مهمة على موقعك وهو ينتظر منك إنشاء حساب له. بعد هذا ستبقى الخطوة الأخيرة وهي تعيين رتبة للحساب، وذلك باختيار المناسب من القائمة المنسدلة. اضغط على "إضافة عضو جديد" عند الانتهاء من الخطوات السابقة، وذلك حتى يتمكن المستخدم الجديد من الولوج لموقعك حالما يتلقى الإشعار عبر بريده الإلكتروني. كيفية تفعيل تسجيل المستخدمين على موقعك الإلكتروني تستطيع إضافة مستخدمين لموقعك يدويًا لتوسيع فريق العمل من محررين وكتاب، وربما مستقلين لإجراء تطوير على الموقع، ولكن إذا كنت تريد لزوار الموقع امتلاك حسابات ضمنه لإضافة تعليقات والبقاء على اطلاع على كل جديد مرتبط بعلامتك التجارية، فإن طريقة الإضافة اليدوية غير مجدية إطلاقًا، لكن لحسن الحظ تستطيع السماح للزوار بالتسجيل دون تدخل منك، وللاستفادة من الميزة السابقة عليك تفعيلها وذلك من خلال التوجه إلى "عام " المتواجدة ضمن "الإعدادات". سوف يُضاف رابط للتسجيل لصفحة دخول ووردبريس عند تفعيل خيار "السماح بالتسجيل". يستطيع الزوار عند الضغط على خيار "تسجيل" اختيار اسم المستخدم وبريدهم الإلكتروني لإنشاء حساب على موقعك. يُرسل ووردبريس رسالة تأكيد عبر البريد الإلكتروني للمستخدم بعد تسجيلهم، والتي تتضمن تعليمات حول الدخول للموقع، حيث يجب عليك الأخذ بالحسبان تخصيص صفحة تسجيل الدخول إن كانت عملية التسجيل ضمن الموقع جزءًا هامًا من عمل موقعك، وبالأخص إن كنت تُدير متجرًا إلكترونيًا أو موقعًا يتضمن عضويات. الخلاصة تستطيع توزيع العمل على عدة موظفين من خلال امتلاك كل موظف لحسابه الخاص على ووردبريس، إضافةً إلى قدرتك على تحديد صلاحيات كل موظف أو مستخدم عبر الرُتب التي يوفِّرها ووردبريس لضبط سير عمل الموقع وأمنه، وتوجد طريقتان لإضافة مستخدم لموقع ووردبريس هما: إضافة مستخدم يدويًا عبر خيار "أضف جديد" من قسم "الأعضاء". السماح للمستخدم بالتسجيل بنفسه من خلال تفعيل هذه الميزة ضمن صفحة "عام" المتواجدة في قسم "الإعدادات". ترجمة -وبتصرّف- للمقال How to Add New Users to Your WordPress Website لصاحبه Will Morris. اقرأ أيضًا أفضل 9 ملحقات ووردبريس لتسهيل إدارة التعليقات وتحسينها التعامل مع التعليقات في ووردبريس ضبط شاشة الإعدادات العامة بلوحة تحكم ووردبريس
-
تُعَد البيانات وجافاسكربت للواجهة الأمامية من الناحية العملية أحداثًا متنافية، إذ يرى سوق العمل أن وظيفة الواجهة الخلفية معالجة البيانات وتجميعها، أما وظيفة جافاسكربت فهي عرض البيانات المُجمّعة مسبقًا، كما يُنظر إلى عرض النطاق الترددي وزمن المعالجة على أنهما عقبتان رئيسيتان لدى التعامل مع البيانات في الواجهة الأمامية وهذا صحيح إلى حدٍ كبيرٍ، ولكن توجد حالاتٌ من المجدي فيها معالجة البيانات ضمن المتصفح. إذًا فكيف يمكن النجاح بمعالجة البيانات في هذه الحالات؟ التفكير في البيانات يتطلب العمل على البيانات باستخدام جافاسكربت امتلاكًا كاملًا للبيانات وفهمًا للأدوات المتوفرة دون اتصالٍ غير ضروريٍ بالخادم، حيث من المفيد التمييز بين البيانات التابعة لثلاثة أطرافٍ والبيانات المُلّخصة. تتألف البيانات ثلاثية الأطراف من بيانات معاملاتٍ أولية، وهي بيانات منخفضة المستوى يصعب تحليلها لوحدها؛ وتوجد من ناحيةٍ أخرى البيانات المُلخصة وهي البيانات الممكن عرضها بطريقةٍ مفيدةٍ ومنطقية، وتُدعى أيضًا بالبيانات المكوّنة. يهتم المطورون بهيكلية البيانات الكامنة بين تفاصيل المعاملات والبيانات المكوّنة، وهذه هي النقطة التي سنُركز عليها، فهذه البيانات مُجمّعة ولكنها تتضمن أكثر مما نحتاج للعرض النهائي، كما تمتلك بُعدين أو أكثر (متعددة الأبعاد)، وهذا يوفّر مرونةً في طريقة عرضها، فهي تسمح للمستخدمين النهائيين بتشكيل البيانات واستخراج المعلومات لمزيدٍ من التحليل، وبالرغم من أنها صغيرة وذات أداء جيدٍ، إلا أنها توفّر تفاصيلًا تسمح لنا وللمؤلف بالاطلاع على معلوماتٍ لم نكن نتوقعها. يجب أن لا يكون الهدف هو الوصول بالبيانات إلى هيئةٍ مثالية، وذلك لتجنب أي تلاعبٍ بها في الواجهة الأمامية، بل يجب تقليص البيانات إلى مجموعة بياناتٍ متعددة الأبعاد، كما يجب استخدام أبعادٍ متعددة يهتم بها العميل المُستهدف مثل الأشخاص والمنتجات والأماكن والوقت، وقياساتٍ متعددة مثل المجموع والتعداد والمتوسط وأصغر قيمة وأعظم قيمة، وبالتالي فعلينا في النهاية عرض هذه البيانات على صفحةٍ مع عناصر نموذج تسمح بتقسيم البيانات لتحليلها بصورةٍ أعمق. يُعَد إنشاء مجموعات البيانات عمليةً دقيقة جدًا، حيث لا بد من امتلاك بياناتٍ كافية ليكون تحليلنا ذو قيمة وبدون إجهاد جهاز العميل سواءً كان حاسوبًا أو هاتفًا ذكيًا أو غير ذلك، وهذا يعني الوصول لمتطلباتٍ واضحة وموجزة، وسوف نحتاج لاستخدام أبعاد متنوعة وقياسات مختلفة، وهذا يعتمد على مدى اتساع مجموعة البيانات التي نتعامل معها. سنذكر فيما يلي بعض الأمور الواجب أخذها بالحسبان: هل غالبية المحتوى هو محتوى مميز أو سوف يُستخدم مرارًا؟ حيث نعتمد على قاعدة 80/20 التي تنص على أن 80% من المستخدمين عامةً يحتاجون إلى 20% مما هو متوفرٌ. هل كل الأبعاد منتهية؟ حيث يجب أن تمتلك الأبعاد مجموعةً من القيم المُحددة مسبقًا، فمثلًا مخزون منتج ما يزداد باستمرار سوف يتضخم بسرعة، لذلك فإن العمل على تصنيفات المنتج ربما سيكون أفضل. العمل على تجميع البيانات ما أمكن وبالأخص التواريخ، وإن كنت تستطيع الاكتفاء بعملية التجميع باستخدام الأعوام فافعل ذلك، وإن كنت بحاجة للتجميع بالاعتماد على الشهر فلا بأس بذلك، ولكن تجنب المجالات الأصغر من ذلك. اعتماد مبدأ "القلة أفضل"، فكلما كان عدد القيم ضمن البعد أقل، كان هذا أفضل من ناحية الأداء. لنأخذ مجموعة بيانات مؤلفةً من 200 صفٍ على سبيل المثال، فإذا أضفنا بعدًا آخر بأربع قيمٍ ممكنة، فسوف تتضخم مجموعة البيانات هذه إلى 200x4 = 800 صفٍ كحدٍ أعظمي؛ أما إذا أضفت بعدًا بخمسين قيمة، فعندها سوف تتضخم مجموعة البيانات إلى 200x50 = 10000 صفًا، وهذا سوف يتضاعف مع كل بعد نُضيفه. تجنُب القياسات المُلخصة في مجموعات البيانات متعددة الأبعاد لأنها تحتاج إعادة الحساب في كل مرةٍ تتغير فيها مجموعة البيانات، إذ يجب عليك مثلًا تضمين المجموع الكلي والعدد الكلي وحساب المتوسطات ديناميكيًا إذا كنت تخطط لعرض المتوسط، ونتمكن بهذه الطريقة من إعادة حساب المتوسطات باستخدام القيم المُلخصة عند تلخيص البيانات. تأكد من فهمك الجيد للبيانات التي تعمل عليها قبل البدء بتنفيذ أيٍ من المذكور سابقًا، فمن المحتمل أن تفترض افتراضاتٍ خاطئةٍ تقود إلى قراراتٍ مبنيةٍ على معلوماتٍ خاطئة، لذلك فإن جودة البيانات هي أولويةٌ هامة وهذا ينطبق على البيانات التي تطلبها أو تُنشئها. لا تأخذ أي مجموعة بيانات وتبني افتراضاتٍ عن بعد أو قياسٍ فيها، ولا تتردد بالسؤال دائمًا عن فهرس البيانات أو أي توثيقٍ خاصٍ بها يُمكن أن يساعد على فهم ما تتعامل معه، حيث لا يعتمد تحليل البيانات على الحدس أو التنبؤ، فربما طُبقت قواعد خاصة بعملٍ تجاريٍ أو حُذفت بيانات في خطوةٍ سابقة، وبالتالي فإن كنت لا تملك هذه المعلومات فسينتهي بك الأمر بإنتاج مجموعات بياناتٍ وتصوراتٍ لا معنى لها أو مضللة بأسوء الأحوال. سوف يساعد المثال التالي على فهم ما سبق. حالة الاستخدام المدروسة سوف نستخدم مجموعة بيانات BuzzFeed المختصة بتحليل البيانات المتعلقة بالأماكن التي يأتي منها اللاجئون إلى الولايات المتحدة والأماكن التي يذهبون إليها، حيث سنبني تطبيقًا صغيرًا يعرض لنا عدد اللاجئين الواصلين لولايةٍ محددة في عامٍ محدد، وسنعرض على وجه الخصوص واحدةً مما يلي بناءً على طلب المستخدم: العدد الكلي للواصلين إلى ولايةٍ معينة في عامٍ معينٍ. العدد الكلي للواصلين خلال كل الأعوام لولايةٍ معينة. العدد الكلي للواصلين لكل الولايات في عام معيّن. سوف تكون واجهة المستخدم عبارة عن نموذجٍ بسيطٍ لاختيار الولاية والعام، وسوف تعمل الشيفرة على: إرسال طلبٍ بالبيانات. تحويل النتيجة إلى JSON. معالجة البيانات. تسجيل أي خطأ في الطرفية. عرض النتائج للمستخدم. لن نمرّر مجموعات بياناتٍ ضخمة الحجم للمتصفح لسببين هما عرض الحزمة، وقدرات وحدة المعالجة المركزية CPU، لذلك ستُجمع البيانات في الخادم باستخدام Node.js. بيانات المصدر [{"year":2005,"origin":"Afghanistan","dest_state":"Alabama","dest_city":"Mobile","arrivals":0}, {"year":2006,"origin":"Afghanistan","dest_state":"Alabama","dest_city":"Mobile","arrivals":0}, ... ] البيانات متعددة الأبعاد: [{"year": 2005, "state": "Alabama","total": 1386}, {"year": 2005, "state": "Alaska", "total": 989}, ... ] كيفية ضبط هيكلية البيانات في المكان الصحيح واجهة AJAX وFetch API توجد عدة طرق في جافاسكربت من أجل جلب البيانات من مصدرٍ خارجيٍ، وكان علينا قديمًا استخدام طلب XHR لذلك، لأنه مدعوم على نطاقٍ واسعٍ ولكنه معقد ويتطلب استخدام عدة طرقٍ مختلفة، كما توجد مكتبات تُساعد على تخفيض التعقيد، مثل Axios أو jQuery's Ajax API، كما أنها توفّر دعمًا عبر المتصفحات، ولهذا فهي خيارٌ متاحٌ إن كنت تستخدم أحدها، لكن لا بد من اختيار الحلول الأصيلة ما أمكن. توجد أيضًا طريقة Fetch API وهي الأحدث، ولذلك فهي مدعومةٌ على نطاقٍ أضيق من سابقاتها، ولكنها أسهل وقابلة للتسلسل، وستُحوّل الشيفرة البرمجية إلى مكافئٍ مدعومٍ على نطاقٍ أوسع إن كنت تستخدم ناقلًا مثل Babel. ستُستخدم واجهة Fetch API في الحالة المدروسة لجلب البيانات للتطبيق. window.fetchData = window.fetchData || {}; fetch('./data/aggregate.json') .then(response => { // when the fetch executes we will convert the response // to json format and pass it to .then() return response.json(); }).then(jsonData => { // take the resulting dataset and assign to a global object window.fetchData.jsonData = jsonData; }).catch(err => { console.log("Fetch process failed", err); }); الشيفرة البرمجية السابقة هي جزءٌ من ملف main.js الموجود في مستودع GitHub، حيث ترسل الطريقة fetch() طلبًا بالبيانات ثم نحوّل النتائج إلى JSON، وستُستخدم الطريقة then() من أجل ضمان عدم تنفيذ التعليمة التالية إلا بعد جلب كامل مجموعة البيانات، وستُنفذُ جميع عمليات معالجة البيانات ضمن هذه الكتلة، كما ستُسجل الأخطاء باستخدام console.log(). الهدف هنا هو تحديد الأبعاد الأساسية المطلوبة لعمل تقريرٍ بالعام والولاية قبل تجميع عدد الواصلين المرتبطين بهذه الأبعاد، وإزالة الدولة الأم والمدينة المتوجهين لها، ويمكنك الاطلاع على النص البرمجي Node.js في الملف preprocess/index.js/ في مستودع GitHub لفهم كيفية إنجاز العمليات السابقة بصورةٍ أكبر، حيث يُنشئ هذا النص البرمجي ملف aggregate.json الذي يجلبه التابع fetch(). البيانات متعددة الأبعاد الهدف من الصيغة متعددة الأبعاد هو تحقيق المرونة بحيث تكون البيانات مُفصلةً جيدًا، حتى لا يُضطر المستخدم لطلب استعلام للخادم في كل مرةٍ يحتاج فيها إجابةً عن سؤالٍ مختلف، وتكون مُلخصةً بنفس الوقت بحيث لا يُضطر التطبيق للبحث في كامل مجموعة البيانات مع كل جزءٍ جديدٍ من البيانات. يجب علينا توقع الأسئلة وتقديم بيانات تُجيب عن هذه الأسئلة لأن المستخدم يحتاج إلى أن يكون قادرًا على إجراء بعض التحليلات دون أن يشعر بأنه مُقيدٌ أو مغمورٌ بكمٍ هائلٍ من المعلومات. ستُستخدم بيانات JSON كما هو الحال مع معظم واجهات برمجة التطبيقات APIs، فهي معيارٌ مُستخدمٌ لإرسال البيانات للتطبيقات على أنها كائناتٌ تتألف من أزواج (اسم وقيمة). ألقِ نظرةً على العينة التالية من مجموعة بياناتٍ متعددة الأبعاد قبل العودة إلى الحالة المدروسة: const ds = [{ "year": 2005, "state": "Alabama", "total": 1386, "priorYear": 1201 }, { "year": 2005, "state": "Alaska", "total": 811, "priorYear": 1541 }, { "year": 2006, "state": "Alabama", "total": 989, "priorYear": 1386 }]; تستطيع استخدام جافاسكربت على نحوٍ أكبر لتحليل مجموعة البيانات عندما تكون مُجمّعةً بطريقة صحيحة. لنُلقِ نظرةً على بعض من توابع مصفوفات جافاسكربت المُستخدمة لتكوين البيانات. كيفية العمل بفعالية مع البيانات من خلال جافاسكربت ترشيح المصفوفة تأخذ طريقة filter() الخاصة بالنموذج الأولي للمصفوفة Array.prototype.filter()، وظيفة اختبار كل عنصرٍ ضمن المصفوفة، وتُعيد مصفوفةً أخرى تحتوي على القيم التي تجاوزت الاختبار، وهذا يسمح بإنشاء مجموعة بياناتٍ فرعيةٍ ذات معنى عند استخدام القائمة المنسدلة أو مرشحات النص، كما سيتمكن المستخدم من الاطلاع على المعلومات من خلال عرض أقسامٍ من البيانات، وهذا صحيحٌ أيضُا عند استخدام أبعادٍ ذات معنى ومنفصلة لمجموعة البيانات متعددة الأبعاد. ds.filter(d => d.state === "Alabama"); // Result [{ state: "Alabama", total: 1386, year: 2005, priorYear: 1201 },{ state: "Alabama", total: 989, year: 2006, priorYear: 1386 }] ربط بيانات المصفوفة تأخذ طريقة map() الخاصة بالنموذج الأولي للمصفوفة Array.prototype.map() وظيفة تمرير كل عنصرٍ في المصفوفة وإعادة مصفوفةً جديدةً بنفس عدد العناصر القديم، حيث يسمح ربط البيانات بإنشاء مجموعات بياناتٍ مرتبطة، وأحد استخدامات هذه الطريقة هو ربط بياناتٍ غامضةٍ مع بياناتٍ ذات معنى وموصوفة، أو استخدامها لأخذ قياسات وإجراء حسابات على عناصر المصفوفة لتحقيق تحليلٍ أكثر عمقًا. 1. ربط البيانات ببيانات ذات معنى ds.map(d => (d.state.indexOf("Alaska")) ? "Contiguous US" : "Continental US"); // Result [ "Contiguous US", "Continental US", "Contiguous US" ] 2. ربط البيانات مع النتائج المحسوبة ds.map(d => Math.round(((d.priorYear - d.total) / d.total) * 100)); // Result [-13, 56, 40] تلخيص بيانات المصفوفة تأخذ طريقة reduce()الخاصة بالنموذج الأولي للمصفوفة Array.prototype.reduce() وظيفة معالجة كل عنصرٍ ضمن المصفوفة وإعادة بياناتٍ مُجمعةٍ، وتُستخدم لإنجاز حساباتٍ رياضيةٍ مثل إضافة أو ضرب كل رقمٍ ضمن المصفوفة، ويُمكن استخدامها أيضًا لضم المحارف والعديد من الأمور الأخرى، ولا بد من تعلُّم هذه الدالة من خلال مثالٍ نظرًا لصعوبتها. عليك التأكد من تلخيص البيانات عند عرضها، بحيث تُقدم فكرةً مُلخصةً للمستخدمين، ولذلك يُمكن تجميع البيانات اعتمادًا على ما يحتاجه المُستخدم حتى عند تطبيق عمليات تلخيصٍ عامة على البيانات من جهة الخادم، وبالنسبة للتطبيق الذي ننشئه، فعليّنا إضافة المجموع الكلي لكل مُدخلٍ وعرض النتيجة المُجمّعة باستخدام طريقة reduce() للمرور على كل سجلٍ وإضافة القيمة الحالية إلى المجمّع، وبهذا تكون النتيجة النهائية هي المجموع الكلي لقيم كل مصفوفة. ds.reduce((accumulator, currentValue) => accumulator + currentValue.total, 0); // Result 3364 تطبيق هذه الدوال على الحالة المدروسة حالما نحصل على البيانات سنعيّن حدثّا للزر "Get the Data" من أجل عرض المجموعة الفرعية من البيانات المناسبة، حيث توجد عدة مئاتٍ من العناصر ضمن بيانات JSON الخاصة بالتطبيق، وتتواجد الشيفرة المسؤولة عن دمج البيانات مع الزر في الملف main.js الخاص بنا: document.getElementById("submitBtn").onclick = function(e){ e.preventDefault(); let state = document.getElementById("stateInput").value || "All" let year = document.getElementById("yearInput").value || "All" let subset = window.fetchData.filterData(year, state); if (subset.length == 0 ) subset.push({'state': 'N/A', 'year': 'N/A', 'total': 'N/A'}) document.getElementById("output").innerHTML = `<table class="table"> <thead> <tr> <th scope="col">State</th> <th scope="col">Year</th> <th scope="col">Arrivals</th> </tr> </thead> <tbody> <tr> <td>${subset[0].state}</td> <td>${subset[0].year}</td> <td>${subset[0].total}</td> </tr> </tbody> </table>` } سوف يأخذ حقل الولاية أو العام القيمة الافتراضية "All" عندما يكون فارغًا. ويمكن الاطلاع على الشيفرة البرمجية التالية المُتاحة في الملف js/main.js/ وإلقاءِ نظرةٍ على الدالّة ()filterData التي نسجّل ضمنها حصة الأسد من عمليتي الترشيح والتجميع. // with our data returned from our fetch call, we are going to // filter the data on the values entered in the text boxes fetchData.filterData = function(yr, state) { // if "All" is entered for the year, we will filter on state // and reduce the years to get a total of all years if (yr === "All") { let total = this.jsonData.filter( // return all the data where state // is equal to the input box dState => (dState.state === state) .reduce((accumulator, currentValue) => { // aggregate the totals for every row that has // the matched value return accumulator + currentValue.total; }, 0); return [{'year': 'All', 'state': state, 'total': total}]; } ... // if a specific year and state are supplied, simply // return the filtered subset for year and state based // on the supplied values by chaining the two function // calls together let subset = this.jsonData.filter(dYr => dYr.year === yr) .filter(dSt => dSt.state === state); return subset; }; // code that displays the data in the HTML table follows this. See main.js. كما ذُكر سابقًا فإن القيمة الافتراضية لحقل الولاية أو العام هي "All" في حال بقي فارغًا، حيث تُرشح مجموعة البيانات وتُلخص قياسات جميع الأسطر حسب هذا البعد، كما ستُرشح قيمة كلٍ من العام والولاية عند إدخالهما. لدينا الآن مثال مجرب، حيث: بدأنا بمجموعة بياناتٍ أوليةٍ ذات معاملات. ثم أنشأنا مجموعة بياناتٍ متعددة الأبعاد وشبه مُجمعة. وبنينا نتيجةً كاملةً التكوين ديناميكيًا. يُمكن التلاعب بالبيانات حالما تصل للمستخدم بعدة طرقٍ دون الحاجة للاتصال المتكرر بالخادم، وهذا مفيد جدًا في حال فقد المستخدم الاتصال، لأنه بذلك لن يفقد القدرة على التفاعل مع البيانات، وهذه ميزةٌ رائعةٌ خصوصًا عند بناء تطبيق ويب تقدُّمي Progressive Web App أو اختصارًا PWA، يحتاج أن يعمل دون اتصالٍ بالانترنت. يمكن إنشاء أي تحليلٍ لأي مجموعة بيانات حالما تُحكم قبضتك على هذه الطرق الثلاث، لذلك اربط أحد الأبعاد ضمن مجموعة البيانات مع تصنيفٍ أكثر شمولية، ولخّص البيانات باستخدام reduce. تستطيع أيضًا استخدام مكتبة D3 من أجل ربط البيانات مع جداول ورسوم بيانية تسمح بتصوُّر مرئي مخصص بالكامل لهذه البيانات. الخلاصة يُطلعنا هذا المقال على الإمكانيات الكامنة في جافاسكربت عند التعامل مع البيانات، وكما ذُكر سابقًا فإن جافاسكربت للواجهة الأمامية ليست بديلًا لتفسير وتحويل البيانات على الخادم حيث تُنجز المهمات الصعبة، كما يجب بنفس الوقت عدم استبعادها عند معالجة مجموعات البيانات بالطريقة الصحيحة. ترجمة -وبتصرّف- للمقال Taming Data with JavaScript لصاحبه Brian Greig. اقرأ أيضًا هياكل البيانات: الكائنات والمصفوفات في جافاسكريبت ماهي جافاسكريبت؟ أمثلة على الاستخدامات برمجة الكائنات Objects في جافاسكريبت
-
يصف هذا المقال كيفية تحقيق برمجة متزامنة في جافا، إذ يُغطي مبادئ البرمجة المتوازية والثبات والخيوط وإطار العمل التنفيذي (تجمُعات الخيوط thread pools)، إلى جانب واجهات Futures وCompletableFuture القابلة للاستدعاء وإطار عمل fork-join. التزامن يعرف التزامن بأنه القدرة على تشغيل عدة برامجٍ أو عدة أجزاءٍ من البرنامج على التوازي، فعندما نتمكن من إجراء مهمةٍ تستغرق وقتًا بالتزامن أو على التوازي مع مهمةٍ أخرى، فسيرفع هذا من الإنتاجية وتفاعلية البرنامج. يمتلك أي حاسوبٍ حديثٍ عدة وحدات معالجةٍ مركزية CPU أو عدة نوىً ضمن الوحدة الواحدة، ومن الممكن أن تكون القدرة على زيادة هذه النوى المتعددة هي مفتاح النجاح لتطبيقٍ يمتلك حجمًا ضخمًا من المُستخدمين. العملية Process مقابل الخيوط Threads تجري العملية بصورة مستقلة ومعزولة عن العمليات الأخرى، حيث لا تستطيع الوصول مباشرةً للبيانات المشتركة في العمليات الأخرى، وتكون الموارد من ذاكرة وزمن وحدة معالجة مركزية محجوزةً لهذه العملية من قبل نظام التشغيل. يُدعى الخيط بالعملية البسيطة ويمتلك مكدسًا خاصًا به، ومع ذلك يستطيع الوصول للبيانات المشتركة للخيوط الأخرى ضمن نفس العملية، كما يمتلك كل خيطٍ ذاكرة تخزينٍ مؤقتٍ خاصة، وعندما يقرأ الخيط بيانات مشتركة يحفظها في ذاكرته المؤقتة، بحيث يُمكن للخيط إعادة قراءة البيانات المشتركة. يعمل تطبيق جافا افتراضيًا ضمن عمليةٍ واحدةٍ، ولتحقيق عملية المعالجة المتوازية أو السلوك غير المتزامن؛ فيجب أن يعمل تطبيق الجافا ضمن عدة خيوط. التحسينات والمشاكل المرافقة للتزامن حدود مكاسب التزامن يجب أن يعمل تطبيق جافا ضمن خيوطٍ متعددةٍ لتحقيق المعالجة المتوازية أو السلوك غير المتزامن، حيث يسمح التزامن بتنفيذٍ أسرع لمهمةٍ ما، لأن هذه المهمة سوف تُقسم إلى مهماتٍ فرعية تُنفّذ على التوازي وبالطبع فإن زمن التشغيل مُقيد بأجزاء المهمة الممكن تنفيذها على التوازي. يُمكن حساب الربح النظري باستخدام القاعدة التالية المُشار إليها بقانون Amdahl. إذا كانت "F" هي النسبة المئوية لأجزاء البرنامج التي يُمكن أن تعمل على التوازي و"N" هو عدد العمليات، فإن ربح الأداء الأعظمي هو: 1/(F+((1-F)/N)) مشاكل التزامن تمتلك الخيوط مكدساتٍ خاصة بها، إلا أنها لا تستطيع الوصول إلى البيانات المُشاركة، ولذلك توجد مشكلتان مرتبطتان بالوصول ومجال الرؤية؛ حيث تظهر مشكلة مجال الرؤية عندما يقرأ الخيط "أ" البيانات المُشاركة التي يُغيرها الخيط "ب" فيما بعد، دون معرفة الخيط "أ" بهذا التغيير؛ بينما تظهر مشكلة الوصول عند محاولة عدة خيوطٍ الوصول وتغيير نفس البيانات المُشاركة في الوقت ذاته. تؤدي مشكلتا الوصول ومجال الرؤية إلى: عدم تجاوب التطبيق بسبب المشاكل الحاصلة بفعل التزاحم للوصول للبيانات. بيانات غير صحيحة ناتجة عن البرنامج. التزامن في جافا العمليات والخيوط يعمل برنامج جافا افتراضيًا ضمن عمليةٍ خاصةٍ به وضمن خيطٍ واحد، حيث تُعد الخيوط جزءًا من لغة جافا وتتعامل جافا معها باستخدام الشيفرة البرمجية Thread، ويستطيع تطبيق جافا إنشاء خيوطٍ جديدةٍ باستخدام هذا الصنف، كما يوفِّر الإصدار 1.5 من جافا دعمًا متقدمًا للتزامن باستخدام حزمة java.util.concurrent. الأقفال ومزامنة الخيوط توفّر لغة جافا أقفالًا لحماية أجزاءٍ مُعينةٍ من الشيفرة البرمجية لتنفيذها من قِبل عدة خيوطٍ بنفس الوقت، والطريقة الأسهل لقفل طريقة method أو صنف Class جافا هي من خلال تعريف هذه الطريقة أو الصنف باستخدام الكلمة المفتاحية synchronized. تضمن الكلمة المفتاحية synchronized في جافا ما يلي: إمكانية تنفيذ كتلةٍ من الشيفرة البرمجية في نفس الوقت من قِبل خيطٍ واحدٍ فقط. يستطيع أي خيطٍ الاطلاع على التعديلات السابقة للكتلة المتزامنة من الشيفرة البرمجية والمحمية بنفس القفل عند دخوله إليها. عملية التزامن ضرورية لضمان الوصول الحصري والمتبادل إلى الكتل البرمجية وضمان اتصالٍ موثوقٍ بين الخيوط. تستطيع استخدام الكلمة المفتاحية synchronized عند تعريف الطريقة لتضمن أن خيطًا واحدًا فقط يستطيع استخدام هذه الطريقة بنفس الوقت، وبالتالي عند محاولة خيطٍ آخر لاستخدام هذه الطريقة، فسوف ينتظر حتى ينتهي الخيط الأول من استخدام هذه الطريقة. public synchronized void critial() { // some thread critical stuff // here } يمكن أيضًا استخدام الكلمة المفتاحية synchronized لحماية كتل من الشيفرة البرمجية ضمن الطريقة method، حيث تكون الكتلة محميةً بمفتاحٍ من الممكن أن يكون محرفًا أو كائنًا، ويُدعى هذا المفتاح بالقفل، حيث لا يُمكن للشيفرات البرمجية المحمية بنفس القفل الوصول إلا من قِبل خيطٍ واحدٍ بنفس الوقت، فعلى سبيل المثال تضمن هيكلية البيانات التالية وصول خيطٍ واحدٍ فقط إلى داخل كتلتي الطريقتين ()add و()next. package de.vogella.pagerank.crawler; import java.util.ArrayList; import java.util.List; /** * Data structure for a web crawler. Keeps track of the visited sites and keeps * a list of sites which needs still to be crawled. * * @author Lars Vogel * */ public class CrawledSites { private List<String> crawledSites = new ArrayList<String>(); private List<String> linkedSites = new ArrayList<String>(); public void add(String site) { synchronized (this) { if (!crawledSites.contains(site)) { linkedSites.add(site); } } } /** * Get next site to crawl. Can return null (if nothing to crawl) */ public String next() { if (linkedSites.size() == 0) { return null; } synchronized (this) { // Need to check again if size has changed if (linkedSites.size() > 0) { String s = linkedSites.get(0); linkedSites.remove(0); crawledSites.add(s); return s; } return null; } } } الذاكرة المتطايرة يضمن التصريح عن أي متحولٍ باستخدام الكلمة المفتاحية volatile قراءة الخيط لآخر قيمة مكتوبة في الحقل، حيث أن الكلمة المفتاحية volatile لا تُطبق أي قفلٍ على المتغير. بدءًا من الإصدار 5 لجافا، فقد صارت قيم المتغيرات الغير متطايرة -التي تُعدل من قبل نفس الخيط- تُحدَّث عند الكتابة على متغيرٍ متطايرٍ، كما يُمكن استخدام هذه الخاصية لتحديث قيمٍ ضمن متغيرٍ مرجعي مثل المتغير المتطاير "person"، ففي هذه الحالة لا بُدّ من استخدام متغير مؤقتٍ "person" واستخدام أداة ضبط لتهيئة متغير، ثم تعيين قيمة متغيرٍ مؤقتٍ للمتغير النهائي، وسوف يُغير هذا عنوان المتغير ويجعل القيم مرئيةً للخيوط الأخرى. نموذج الذاكرة في جافا يصف هذا النموذج عملية الاتصال بين ذاكرة الخيوط والذاكرة الرئيسية للتطبيق، فهو يُحدد شروط انتشار التغييرات في الذاكرة بين الخيوط، والحالات التي يُحدِث فيها الخيط ذاكرته الخاصة من الذاكرة الرئيسية، والعمليات الذرية وترتيب هذه العمليات. العمليات الذرية العملية الذرية هي عملية تُطبق كوحدة عملٍ منفردة دون أي تدخل من عملياتٍ أخرى، حيث تضمن مواصفات لغة جافا أن تكون عملية قراءة أو كتابة متغير ذريةً، إلا في حال كان نوع المتغير long أو double، وتكون العمليات على المتغيرات من نوع long أو short ذريةً فقط إذا صُرح عنها باستخدام الكلمة المفتاحية volatile. بفرض أنه قد صُرِّح عن المتغير i على أنه صحيح int، فسوف تكون الزيادة i++ عمليةً غير ذرية في جافا، وهذا ينطبق على القيم الرقمية الأخرى مثل long. تقرأ العملية i++ أولًا القيمة المُخزنة حاليًا في i (عمليةٌ ذريةٌ)، ثم تُضيف قيمة واحد لها (عمليةٌ ذريةٌ)، ولكن يُحتمل أن تتغير القيمة بين عمليتي الكتابة والقراءة. توفّر لغة جافا بدءًا من الإصدار 1.5 متغيراتٍ ذريةٍ مثل AtomicInteger، أو AtomicLong، والتي توفّر توابعًا مثل: getAndDecrement() getAndIncrement() getAndSet() وجميعها ذرية. تحديثات الذاكرة في الشيفرة البرمجية المتزامنة يضمن نموذج الذاكرة في جافا أن يستطيع كل خيط يدخل كتلة شيفرة برمجية متزامنة، الاطلاع على جميع التعديلات التي حدثت تحت حماية نفس القفل. الثبات والنسخ الوقائية الثبات يمكن تجنب مشاكل التزامن بطريقةٍ بسيطةٍ من خلال مشاركة البيانات الثابتة فقط بين الخيوط، وهي البيانات التي لا يُمكن تغييرها، كما يجب التصريح عن صنف مع كل الحقول الخاصة به على أنها نهائية final لجعله ثابتًا، ويجب التأكد من عدم تسرُّب أي مرجع للحقول أثناء عملية البناء، لذلك يجب أن يكون الحقل: خاص private. لا يمتلك طريقةً ضابطة. أن يُنسخ ضمن الباني إذا كان كائنًا متغيرًا لتجنب تغيير البيانات من خارج الصنف. لا يجب إعادة قيمته مباشرةً أو التعامل معه مباشرةً. لا يتغير وإذا حصل تغيير فيجب ألا يكون ظاهرًا للخارج. يُمكن أن يتضمن الصنف الثابت بعض البيانات المتغيرة والتي تُستخدم لإدارة حالته، ولكن لا يُمكن تغيير هذا الصنف أو أي سمةٍ ضمنه من خارج الصنف، إذ يجب أن يُنشئ هذا الصنف نُسخًا وقائيةً عن عناصر الحقول الثابتة التي تُمرر له من الخارج مثل المصفوفة، وذلك لضمان عدم إمكانية أي كائنٍ خارجيٍ تغيير البيانات. النسخ الوقائية يجب حماية الأصناف من أي شيفرة استدعاء، إذ من الممكن لهذه الشيفرة تغيير البيانات بطريقةٍ لا تتوقعها حتى من أجل البيانات الثابتة التي لا تتوقع أن تغير قيمتها من خارج الصنف. ولحماية الصنف، يجب نسخ البيانات المُستقبلة وإعادة نُسخٍ فقط عن البيانات إلى شيفرة الاستدعاء. يُنشئ المثال التالي نسخةً من اللائحة ArrayList ويُعيد النسخة فقط وبالتالي لا يستطيع عميل هذا الصنف إزالة العناصر من اللائحة. package de.vogella.performance.defensivecopy; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class MyDataStructure { List<String> list = new ArrayList<String>(); public void add(String s) { list.add(s); } /** * Makes a defensive copy of the List and return it * This way cannot modify the list itself * * @return List<String> */ public List<String> getList() { return Collections.unmodifiableList(list); } } الخيوط في جافا إن أساس التزامن في جافا هو الصنف java.lang.Threads، حيث يُنفّذ Thread كائنًا من النوع java.lang.Runnable، وتتضمن واجهة Runnable تعريفًا للطريقة ()run التي تُستدعى من قِبل الكائن Thread وتحتوي العمل الواجب تنفيذه، لذلك فإن Runnable هو مهمة يجب تنفيذها، أما Thread فهو العامل الذي يُنفذ هذه المهمة. يوضح المثال التالي مهمة Runnable بحساب مجموع مجال مُعطى من الأرقام، لذا أنشِئ مشروع جافا وسمِّه de.vogella.concurrency.threads لهذا المثال. package de.vogella.concurrency.threads; /** * MyRunnable will count the sum of the number from 1 to the parameter * countUntil and then write the result to the console. * <p> * MyRunnable is the task which will be performed * * @author Lars Vogel * */ public class MyRunnable implements Runnable { private final long countUntil; MyRunnable(long countUntil) { this.countUntil = countUntil; } @Override public void run() { long sum = 0; for (long i = 1; i < countUntil; i++) { sum += i; } System.out.println(sum); } } يوضح المثال التالي استخدام صنفي Thread وRunnable. package de.vogella.concurrency.threads; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { // We will store the threads so that we can check if they are done List<Thread> threads = new ArrayList<Thread>(); // We will create 500 threads for (int i = 0; i < 500; i++) { Runnable task = new MyRunnable(10000000L + i); Thread worker = new Thread(task); // We can set the name of the thread worker.setName(String.valueOf(i)); // Start the thread, never call method run() direct worker.start(); // Remember the thread for later usage threads.add(worker); } int running = 0; do { running = 0; for (Thread thread : threads) { if (thread.isAlive()) { running++; } } System.out.println("We have " + running + " running threads. "); } while (running > 0); } } سلبيات الصنف Thread: يُؤثر إنشاء خيطٍ جديدٍ بعض الشيء على الأداء. سوف يُسبب إنشاء العديد من الخيوط تراجعًا في الأداء لأن وحدة المعالجة المركزية CPU سوف تضطر للتبديل بين هذه الخيوط. لا تستطيع التحكم بعدد الخيوط بسهولة لذلك سوف تواجه أخطاءً بسبب امتلاء الذاكرة الناتج عن العدد الكبير للخيوط. تجمعات الخيوط Thread Pools مع الإطار المنفذ Executer Framework تُدير تجمُعات الخيوط مجموعةً من الخيوط العاملة، حيث تتضمن رتل عمل يحتفظ بالمهمات التي تنتظر أن تُنفذ، ويُمكن وصف تجمُّعات الخيوط على أنها مجموعةٌ من كائنات Runnable (رتل عمل) واتصالٌ من الخيوط العاملة، حيث تعمل هذه الخيوط باستمرار وتتحقق من استدعاء العمل لعملٍ جديد، فإذا كان عملًا جديدًا يجب تنفيذه، فستُنفذ هذا الكائن Runnable، حيث يوفّر صنف Thread نفسه طريقةً مثل (execute(Runnable r لإضافة كائن Runnable جديدٍ إلى رتل العمل. يوفر الإطار المُنفذ مثالًا لتطبيق واجهة java.util.concurrent.Executor، مثل: (Executor.newFixedThreadPool(int n والذي سوف يُنشئ n خيط عامل، وتُضيف ExecutorService توابع دورة الحياة للمُنفذ، مما يسمح له بإطفاء المُنفذ وانتظار عملية الإغلاق. أنشئ Runnable مرةً ثانية. package de.vogella.concurrency.threadpools; /** * MyRunnable will count the sum of the number from 1 to the parameter * countUntil and then write the result to the console. * <p> * MyRunnable is the task which will be performed * * @author Lars Vogel * */ public class MyRunnable implements Runnable { private final long countUntil; MyRunnable(long countUntil) { this.countUntil = countUntil; } @Override public void run() { long sum = 0; for (long i = 1; i < countUntil; i++) { sum += i; } System.out.println(sum); } } تستطيع الآن تشغيل كائنات Runnable باستخدام الإطار المُنفذ. package de.vogella.concurrency.threadpools; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Main { private static final int NTHREDS = 10; public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(NTHREDS); for (int i = 0; i < 500; i++) { Runnable worker = new MyRunnable(10000000L + i); executor.execute(worker); } // This will make the executor accept no new threads // and finish all existing threads in the queue executor.shutdown(); // Wait until all threads are finish executor.awaitTermination(); System.out.println("Finished all threads"); } } تستطيع استخدام صنف java.util.concurrent.Callable عند الحاجة لإعادة قيمةٍ معينة من الخيوط. البرمجة غير المتزامنة يُفضل تنفيذ أي عملية تستهلك وقتًا بصورةٍ غير متزامنة حيث توجد مقاربتان للتعامل مع المهام بصورةٍ غير متزامنة ضمن تطبيق جافا، وهما: حجب منطق التطبيق إلى حين إكمال المهمة. استدعاء منطق التطبيق حالما تكتمل المهمة وتُدعى هذه بالمقاربة دون إعاقة. يدعم CompletableFuture وهو توسّع عن واجهة Future، الاستدعاءات غير المتزامنة، فهو يستعمل واجهة CompletionStage التي توفر توابعًا تسمح بربط الاستدعاءات التي سوف تُنفذ عند إكمالها، كما يُضيف تقنيات قياسية لتنفيذ شيفرة تطبيق برمجية عند إكمال مهمةٍ ما، وهذا يتضمن طرقًا متعددةً من أجل دمج المهام. يدعم CompletableFuture أيضًا المقاربتين بإعاقة ودون إعاقة، إضافةً إلى الاستدعاءات العادية. ويٌمكن تنفيذ الاستدعاء في خيطٍ آخر عند تنفيذ CompletableFuture في الخيط ذاته. يُوضح المثال التالي كيفية إنشاء CompletableFuture أساسي. CompletableFuture.supplyAsync(this::doSomething); يُشغّل CompletableFuture.supplyAsync المهمة بصورةٍ غير متزامنة ضمن تجمُّع الخيط الافتراضية لجافا، ويكون الخيار مُتاحًا بالسماح للمنفذ المُخصص بتعريف ThreadPool. package snippet; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; public class CompletableFutureSimpleSnippet { public static void main(String[] args) { long started = System.currentTimeMillis(); // configure CompletableFuture CompletableFuture<Integer> futureCount = createCompletableFuture(); // continue to do other work System.out.println("Took " + (started - System.currentTimeMillis()) + " milliseconds" ); // now its time to get the result try { int count = futureCount.get(); System.out.println("CompletableFuture took " + (started - System.currentTimeMillis()) + " milliseconds" ); System.out.println("Result " + count); } catch (InterruptedException | ExecutionException ex) { // Exceptions from the future should be handled here } } private static CompletableFuture<Integer> createCompletableFuture() { CompletableFuture<Integer> futureCount = CompletableFuture.supplyAsync( () -> { try { // simulate long running task Thread.sleep(5000); } catch (InterruptedException e) { } return 20; }); return futureCount; } } يُمكن استخدام thenApply لتعريف استدعاء يُنفذ حالما ينتهي CompletableFuture.supplyAsync، ويوضح المثال التالي استخدام طريقة thenApply. package snippet; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; public class CompletableFutureCallback { public static void main(String[] args) { long started = System.currentTimeMillis(); CompletableFuture<String> data = createCompletableFuture() .thenApply((Integer count) -> { int transformedValue = count * 10; return transformedValue; }).thenApply(transformed -> "Finally creates a string: " + transformed); try { System.out.println(data.get()); } catch (InterruptedException | ExecutionException e) { } } public static CompletableFuture<Integer> createCompletableFuture() { CompletableFuture<Integer> result = CompletableFuture.supplyAsync(() -> { try { // simulate long running task Thread.sleep(5000); } catch (InterruptedException e) { } return 20; }); return result; } } تستطيع أيضًا تشغيل CompletableFuture مُؤخر بدءًا من الإصدار 9 لجافا. CompletableFuture<Integer> future = new CompletableFuture<>(); future.completeAsync(() -> { System.out.println("inside future: processing data..."); return 1; }, CompletableFuture.delayedExecutor(3, TimeUnit.SECONDS)) .thenAccept(result -> System.out.println("accept: " + result)); خوارزميات دون إعاقة يوفر الإصدار 5.0 لجافا دعمًا لعملياتٍ ذريةٍ إضافية، وهذا يسمح بتطوير خوارزميات دون إعاقة لا تتطلب تزامنًا، ولكن تعتمد على تعليمات عتاد صلب ذري منخفضة المستوى مثل الموازنة والتبديل compare-and-swap أو اختصارًا CAS، حيث تتحقق عمليتا الموازنة والتبديل فيما إذا كان المتغير يحتوي على قيمةٍ ما، وفي حال احتوائه على تلك القيمة سوف تُنفذ العملية. تكون الخوارزميات دون إعاقة عادةً أسرع من خوارزميات الإعاقة لأن تزامن الخيوط يظهر في مستويات أدنى (عتاد صلب). يُنشئ المثال التالي عدّادا دون إعاقة يزداد باستمرار، وهذا المثال موجود ضمن مشروع project يُدعى: de.volgella.concurrency.nonblocking.counter. package de.vogella.concurrency.nonblocking.counter; import java.util.concurrent.atomic.AtomicInteger; public class Counter { private AtomicInteger value = new AtomicInteger(); public int getValue(){ return value.get(); } public int increment(){ return value.incrementAndGet(); } // Alternative implementation as increment but just make the // implementation explicit public int incrementLongVersion(){ int oldValue = value.get(); while (!value.compareAndSet(oldValue, oldValue+1)){ oldValue = value.get(); } return oldValue+1; } } واختبارًا. package de.vogella.concurrency.nonblocking.counter; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class Test { private static final int NTHREDS = 10; public static void main(String[] args) { final Counter counter = new Counter(); List<Future<Integer>> list = new ArrayList<Future<Integer>>(); ExecutorService executor = Executors.newFixedThreadPool(NTHREDS); for (int i = 0; i < 500; i++) { Callable<Integer> worker = new Callable<Integer>() { @Override public Integer call() throws Exception { int number = counter.increment(); System.out.println(number ); return number ; } }; Future<Integer> submit= executor.submit(worker); list.add(submit); } // This will make the executor accept no new threads // and finish all existing threads in the queue executor.shutdown(); // Wait until all threads are finish while (!executor.isTerminated()) { } Set<Integer> set = new HashSet<Integer>(); for (Future<Integer> future : list) { try { set.add(future.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } if (list.size()!=set.size()){ throw new RuntimeException("Double-entries!!!"); } } } إن الجزء المثير للاهتمام هو كيفية تنفيذ طريقة ()incrementAndGet، فهي تستخدم عملية CAS. public final int incrementAndGet() { for (;;) { int current = get(); int next = current + 1; if (compareAndSet(current, next)) return next; } } يستفيد JDK من الخوارزميات بدون إعاقة باستمرار لرفع الأداء لجميع المطورين، كما أن عملية تطوير خوارزميات دون إعاقة صحيحة ليس بالأمر السهل، ويمكنك الاطلاع على المزيد من التفاصيل عن الخوارزميات بدون إعاقة من ibm.com. إطار عمل Fork-Join ضمن جافا 7 طرح الإصدار 7 من جافا آليةً جديدةً تفرعيةً لتنفيذ المهمات المكثفة، وأُطلق الاسم fork-join على إطار العمل التابع لها، حيث يسمح إطار العمل هذا على توزيع مهمةٍ ما على عدة عاملين ثم انتظار النتيجة. أنشئ المشروع de.vogella.performance.forkjoin لتجريبها، وإن كنت تستخدم نسخةً مختلفةً عن جافا 7، فعليك إضافة jsr166y.jar إلى مسار الأصناف. أنشئ أولًا الحزمة algorithm ثم الصنف التالي. package algorithm; import java.util.Random; /** * * This class defines a long list of integers which defines the problem we will * later try to solve * */ public class Problem { private final int[] list = new int[2000000]; public Problem() { Random generator = new Random(19580427); for (int i = 0; i < list.length; i++) { list[i] = generator.nextInt(500000); } } public int[] getList() { return list; } } بعد ذلك عرّف الصنف Solver كما هو موضح في المثال التالي. package algorithm; import java.util.Arrays; import jsr166y.forkjoin.RecursiveAction; public class Solver extends RecursiveAction { private int[] list; public long result; public Solver(int[] array) { this.list = array; } @Override protected void compute() { if (list.length == 1) { result = list[0]; } else { int midpoint = list.length / 2; int[] l1 = Arrays.copyOfRange(list, 0, midpoint); int[] l2 = Arrays.copyOfRange(list, midpoint, list.length); Solver s1 = new Solver(l1); Solver s2 = new Solver(l2); forkJoin(s1, s2); result = s1.result + s2.result; } } } الآن عرّف صنفًا بسيطًا للتجريب وسمِّه Test. package testing; import jsr166y.forkjoin.ForkJoinExecutor; import jsr166y.forkjoin.ForkJoinPool; import algorithm.Problem; import algorithm.Solver; public class Test { public static void main(String[] args) { Problem test = new Problem(); // check the number of available processors int nThreads = Runtime.getRuntime().availableProcessors(); System.out.println(nThreads); Solver mfj = new Solver(test.getList()); ForkJoinExecutor pool = new ForkJoinPool(nThreads); pool.invoke(mfj); long result = mfj.getResult(); System.out.println("Done. Result: " + result); long sum = 0; // check if the result was ok for (int i = 0; i < test.getList().length; i++) { sum += test.getList()[i]; } System.out.println("Done. Result: " + sum); } } التوقف التام أو الجمود Deadlock يتضمن التطبيق المتزامن خطر حدوث جمود، حيث نقول عن مجموعةٍ من العمليات أنها تسبب جمودًا إذا كانت جميع هذه العمليات تنتظر حصول حدثٍ معينٍ لعمليةٍ أخرى موجودةٍ في نفس المجموعة، فمثلًا إذا كان الخيط "أ" ينتظر إغلاق الكائن "د" المحجوز من قِبل الخيط "ب"، والخيط "ب" ينتظر إغلاق الكائن "ت" المحجوز من قِبل العملية "أ"، فعندها سوف تُقفل هاتان العمليتان ولا يُمكنهما متابعة عملياتهما. يُمكن تشبيه هذه الحادثة بالازدحام المروري، حيث تحتاج السيارات (الخيوط) الوصول لشارعٍ مُعين (موارد)، وهذا الشارع محجوزٌ حاليًا من قِبل سيارةٍ أخرى (قفل). ترجمة -وبتصرّف- للمقال Java concurrency (multi-threading) - Tutorial لصاحبه Lars Vogel. اقرأ أيضًا الأحداث غير المتزامنة: حلقات الجس Polling Loops والمقاطعات Interrupts في المعالج الدليل السريع للغة البرمجة Java الأصناف المتداخلة Nested Classes في جافا المتغيرات والأنواع البسيطة في لغة جافا
-
يسلط هذا المقال الضوء على عمل المتصفح والخطوات التي يمر بها لتحويل تنسيق CSS من أقواس إلى بكسلات تظهر على شاشة المتصفح، كما سيتطرق لتأثير تفاعل المستخدم على هذه العملية، لذلك يجب تغطية الكثير من الأساسيات. اقرأ هذا المقال بتركيز وفي بيئة هادئة. التحليل Parsing تبدأ عملية تحليل أو معالجة تنسيق CSS حالما ينتهي المتصفح من تحميله، إذ يُمكن أن يتواجد هذا التنسيق ضمن ملفاتٍ خاصةٍ به بلاحقة css، أو مضمنًا بملفاتٍ فردية داخل وسم <style>، أو مُضمنًا سطريًا ضمن وسوم HTML باستخدام سمة style. يُحلّل ويُرمّز تنسيق CSS بالاعتماد على مواصفات الأنماط، بحيث ستحصل في نهاية هذه العملية على هيكلية بيانات تتضمن كل المُحددات selector والخصائص وقيم هذه الخصائص. ألقِ نظرةً على تنسيق CSS التالي: .fancy-button { background: green; border: 3px solid red; font-size: 1em; } سينتج عنه هيكلية البيانات التالية لتسهيل استخدامها في مراحل لاحقة. table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } المحدّد الخاصية القيمة fancy-button. background-color rgb(0,255,0) fancy-button. border-width 3px fancy-button. border-style solid fancy-button. border-color rgb(255,0,0) fancy-button. font-size 1em لاحظ كيف أنّ المتصفح تخلص من الاختصارات الموجودة في background وborder واستبدلها بقيمها الحقيقية، حيث تُستخدم الاختصارات من قِبل المطورين، بينما يتعامل المتصفح مع القيمة الحقيقية لهذه الاختصارات، كما يتابع محرك المتصفح بناء شجرة DOM بعد الانتهاء مما سبق. الحسابات بعد الانتهاء من تحليل التنسيق الموجود ضمن المحتوى المقروء، تأتي المرحلة الثانية وهي إنجاز حسابات التنسيق حيث يوجد لكل القيم قيم محسوبة قياسية يجب تخفيضها إليها. وبعد الانتقال من مرحلة الحسابات، ستُخفض قيم الأبعاد لواحدٍ من ثلاثة مُخرجاتٍ مُحتلمة، هي auto أو نسبة مئوية أو قيمة مُقاسة بالبكسل. ألقِ نظرةً على الأمثلة التالية لتتوضح لديك ثم وازن بين ما كتبه المطوّر والنتيجة التالية لمرحلة الحسابات. مطوّر الويب القيمة الحسابية font-size: 1em font-size: 16px width: 50% width: 50% height: auto height: auto width: 506.4567894321568px width: 506.46px line-height: calc(10px + 2em) line-height: 42px border-color: currentColor border-color: rgb(0,0,0) height: 50vh height: 540px display: grid display: grid توريث التنسيق Cascade توجد عدة مصادر لتنسيق CSS، ولذلك يحتاج المتصفح لطريقةٍ يُحدد فيها أي تنسيقٍ يجب تطبيقه على عنصرٍ ما، ولعمل ذلك يستخدم المتصفح ميزةً تُدعى دقة التحديد specificity، والتي تحسب عدد الوسوم والأصناف والمعرفات ومحددات السمات المُستخدمة في مُحدد، إضافةً إلى تصاريح important! الموجودة. حيث تُعطى التنسيقات المُضمنة باستخدام سمة style الترتيب الأعلى لتتفوق على أي تنسيق من وسم <style> أو ملف css خارجي، وعند استخدام المطور important! على قيمة تنسيقٍ ما فسوف يتفوق هذا التنسيق على أي تنسيق CSS مهما كان موقعه إلا في حال وجود تصريح important! أيضًا. لتوضيح الأمر أكثر ستُعرض بعض المحددات مع درجة التحديد. المحدّد درجة التحديد li 1 0 0 0 0 li.foo 1 1 0 0 0 comment li.foo.bar# 1 2 1 0 0 <"li style="color: red> 0 0 0 1 0 color: red !important 1 0 0 0 1 إذا تساوت درجات التحديد بين المعرفات، فسيطبّق محرك المتصفح تنسيق المُحدد الذي يظهر آخرًا ضمن الملف. في المثال التالي ستكون خلفية وسم div بلونٍ أزرق. div { background: red; } div { background: blue; } سنتوسّع أكثر في مثال fancy-button.: .fancy-button { background: green; border: 3px solid red; font-size: 1em; } div .fancy-button { background: yellow; } سوف ينتج عن تنسيق CSS هيكلة البيانات التالية، وسنتابع البناء على هذا المثال في بقية المقال. المحدّد الخاصية القيمة درجة التحديد ترتيب المُستند fancy-button. background-color rgb(0,255,0) 0 1 0 0 0 0 fancy-button. border-width 3px 0 1 0 0 0 1 fancy-button. border-style solid 0 1 0 0 0 2 fancy-button. border-color rgb(255,0,0) 0 1 0 0 0 3 fancy-button. font-size 16px 0 1 0 0 0 4 div .fancy-button background-color rgb(255,255,0) 1 1 0 0 0 5 تتبع وفهم المصادر يوجد مصادرٌ مختلفةٌ لتنسيقات CSS، وهي: المستخدم user: أي تنسيقٍ مضبوطٍ ليكون شاملًا داخل وكيل المستخدم من قِبل المستخدم. المؤلف author: تنسيقات مطوّر الويب. وكيل المستخدم user agent: أي شيءٍ يستطيع إخراج تنسيقات CSS، وهو المتصفح بالنسبة لمعظم المطورين والمستخدمين. يضمن توريث التنسيق لكلٍ من المصادر السابقة أن تكون الأولوية للمصدر الأول "المستخدم" ثم "المؤلف" ثم "وكيل المستخدم". لاحظ ماذا سيحدث عند ضبط المستخدم لحجم خط المتصفح إلى قيمة صغرى 2em. المصدر المحدّد الخاصية القيمة درجة التحديد ترتيب المُستند Author fancy-button. background-color rgb(0,255,0) 0 1 0 0 0 0 Author fancy-button. border-width 3px 0 1 0 0 0 1 Author fancy-button. border-style solid 0 1 0 0 0 2 Author fancy-button. border-color rgb(255,0,0) 0 1 0 0 0 3 Author fancy-button. font-size 16px 0 1 0 0 0 4 Author div .fancy-button background-color rgb(255,255,0) 1 1 0 0 0 5 User * font-size 32px 1 0 0 0 0 0 تطبيق توريث التنسيق سيُرتب المتصفح هيكلية البيانات حالما يحصل عليها كاملةً من جميع المصادر ليبدأ عملية الترتيب أولًا حسب المصدر، ثم حسب درجة التحديد، وأخيرًا حسب ترتيب المستند. المصدر ⬆ المحدّد الخاصية القيمة درجة التحديد ⬆ ترتيب المُستند ⬇ User * font-size 32px 1 0 0 0 0 0 Author div .fancy-button background-color rgb(255,255,0) 1 1 0 0 0 5 Author .fancy-button background-color rgb(0,255,0) 0 1 0 0 0 0 Author .fancy-button border-width 3px 0 1 0 0 0 1 Author .fancy-button border-style solid 0 1 0 0 0 2 Author .fancy-button border-color rgb(255,0,0) 0 1 0 0 0 3 Author .fancy-button font-size 16px 0 1 0 0 0 4 ينتج عما سبق القيم والخصائص التي سوف تُستخدم للصنف fancy-button. (كلما كان ترتيبه في الجدول "أعلى" على كلما كان أفضل)، فعلى سبيل المثال، نلاحظ من الجدول السابق أن إعدادات تفضيلات متصفح المستخدم لها أولوية على تنسيق المطوّر. يتحرى المتصفح الآن عن جميع عناصر DOM المطابقة للمحدّدات المذكورة سابقًا ويعطّل التنسيقات المحسوبة الناتجة عن العناصر المطابقة، لتكون عناصر الوسم div في هذه الحالة كالتالي: الخاصية القيمة font-size 32px background-color rgb(255,255,0) border-width 3px border-color rgb(255,0,0) border-style solid للتعرّف على المزيد عن آلية عمل توريث التنسيق، ألقِ نظرةً على التوثيق الرسمي. نموذج كائن CSS لقد قُطع شوطٌ طويلٌ للوصول لهذه المرحلة ولكن لم تنته بعد، ويجب الآن تحديث نموذج CSSOM الموجود ضمن document.stylesheets لكي يُمثل جميع ما حُلّل وحُسِب حتى هذه النقطة. يستخدم مطورو الويب هذه المعلومة دون إدراكهم لها، فمثلًا عند استدعاء getComputedStyle()، سوف تُفعّل العملية المذكورة سابقًا عند الضرورة. التخطيط Layout يُمكن الآن البدء بعملية بناء العناصر البصرية بعد الحصول على شجرة DOM مع التنسيقات المُطبّقة عليها، حيث تتواجد هذه الشجرة في جميع المحركات الحديثة ويُشار لها بشجرة الصندوق. ولبناء هذه الشجرة، يجب إنشاء صناديق CSS التي يمتلك كل منها هامشًا خارجيًا وحدودًا وهامشًا داخليًا ومحتوى للصندوق. سيُغطي هذا القسم مبادئ مخطط CSS التالية: تنسيق المحتوى Formatting Context إذ توجد عدة أنواعٍ لتنسيق المحتوى يستدعيها المطور من خلال قيمة display للعنصر، ومن أكثر هذه التنسيقات استخدامًا نجد الكتلة Block والمرن flex والشبكة grid، وخلايا الجدول table-cells والمُضمنة سطريًا inline، كما يُمكن لتنسيقات CSS أخرى فرض صيغة التنسيق أيضًا، مثل position: absolute أو باستخدام float أو باستخدام أعمدة متعددة. كتلة الاحتواء Containing block وهي عبارة عن كتلة أب تستقي التنسيقات منها. الاتجاه المُضمن سطريًا Inline direction وهو يمثّل الاتجاه الذي يُكتب به النص اعتمادًا على نمط الكتابة للعنصر، فمثلًا هو عبارة عن المحور الأفقي في الكتابة العربية، أما عند الكتابة باللغة الصينية فهو المحور الأفقي. اتجاه الكتلة Block direction والذي يُماثل عمل الاتجاه المُضمن سطريًا، ولكنه يكون عموديًا على ذلك المحور، وبالتالي يكون محوره في الكتابة العربية هو المحور العمودي، بينما يكون محوره هو الأفقي عند الكتابة باللغة الصينية. تفسير قيم الأبعاد التلقائية auto تكون قيم الأبعاد في مرحلة الحسابات واحدةٌ من ثلاثة احتمالات هي auto، أو نسبة مئوية، أو بكسل. والهدف من المُخطط هو قياس حجم وتحديد موقع كل صندوق ضمن شجرة الصناديق وتحضيرهم لعملية الرسم والطباعة على الشاشة، إذ يوجد العديد من الأمثلة البصرية ستسهّل فهم آلية بناء شجرة الصناديق وتجعل متابعتها أسهل، بحيث لا تُعرض صناديق تنسيقات CSS الفردية بل فقط الصندوق الأساسي. ألقِ نظرةً على مُخطط عبارة "Hello World" باستخدام الشيفرة التالية. <body> <p>Hello World</p> <style> body { width: 50px; } </style> </body> يبدأ المتصفح بعنصر body الرئيسي، حيث يُنشئ الصندوق المبدئي الذي يملك عرضًا بقيمة 50 بكسل وارتفاعًا افتراضيًا auto. ينتقل المتصفح الآن للمقطع ويُنشئ الصندوق المبدئي الخاص به، وبما أن للمقطع هامشًا خارجيًا افتراضيًا، فسيؤثر هذا على ارتفاع عنصر body كما هو موضح في الصورة السابقة. ينتقل المتصفح الآن للنص "Hello World"، وهو عبارة عن عقدة نصية في DOM وبناءً عليها يُنشأ صندوقًا سطريًا داخل المخطط، حيث يُلاحظ خروج النص عن حدود عنصر body، وهذا ما ستُعالجه الخطوة اللاحقة. يعود المحرك إلى العنصر الأب عند إهمال عملية تخطيط النص، وذلك لأن كلمة "World" لا تتسع في الصندوق ولم تُغّير القيمة الافتراضية للخاصية overflow. سوف يتلقى العنصر الأب رسالةً مفادها أن العنصر الابن لم يستطع إكمال المُخطط لكامل المحتوى، لذلك سوف يُنشئ نسخةً عن صندوق السطر الذي يتضمن كامل التنسيقات، وسوف يُمرر كل معلومات المُخطط لهذا الصندوق. بعد الانتهاء من المُخطط سوف يمر المتصفح على جميع عناصر شجرة الصندوق ليُفسر أيًّا من قيمة auto أو قيمة مئوية لم تُفسر بعد. تستطيع أن تلاحظ في الصورة أعلاه أن المقطع وbody الآن يحتويان كامل العبارة بسبب ضبط الارتفاع height إلى القيمة auto. التعامل مع العومان float سننتقل الآن لأمورٍ أكثر تعقيدًا. بفرض لدينا مُخططًا عاديًا، وزرًا يحوي عبارة "Share It" وقيمة float تُشير إلى يسار مقطع النص الأجنبي. تعتمد خاصية العوم float على مبدأ " تقلص لتُناسب shrink-to-fit" حتى يتسع المحتوى، حيث يصغر الصندوق حتى حجم مُناسب للإحاطة بمحتواه إذا كانت أبعاده auto. توجد صناديق أخرى مماثلة لصندوقfloat مثل الصناديق ذات الموقع absolute بما فيها العناصر ذات الموقع الثابت fixed، وخلايا الجدول ذات الحجم auto. ألقِ نظرةً على الشيفرة التابعة للزر السابق. <article> <button>SHARE IT</button> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pellentesq</p> </article> <style> article { min-width: 400px; max-width: 800px; background: rgb(191, 191, 191); padding: 5px; } button { float: left; background: rgb(210, 32, 79); padding: 3px 10px; border: 2px solid black; margin: 5px; } p { margin: 0; } </style> تبدأ العملية هنا كما في المثال السابق "Hello World"، لذلك سنتجاوز هذه المرحلة وصولًا إلى مرحلة معالجة الزر العائم. تُنشئ خاصية float كتلة تنسيق محتوى جديدة Block Formatting Context أو اختصارًا BFC، وهي كتلة تتقلص لتحيط بالمحتوى، لذلك يعمل المتصفح على نوع مُخطط مُعين يُدعى قياس المحتوى content measure، حيث يبدو هذا المخطط في هذا النمط مُماثلًا لبقية المُخططات، ولكن مع اختلافٍ مهمٍ هو أنه أُنشئ في مساحةٍ لا نهائية. يعمل المتصفح في هذه المرحلة على رسم شجرة كتلة تنسيق المحتوى باستخدام أكبر وأصغر عرض لها، وسيرسم في هذه الحالة زرًا بنص بحجم أطول كلمة، يتضمن أصغر حجم له جميع صناديق CSS الأخرى، وفي أكبر حجم له سيكون بعرض كامل النص في سطر واحد إضافةً إلى صناديق CSS. يعلم محرك المتصفح الآن أن العرض الأصغري هو 86 بكسل والأعظمي 115 بكسل، وسوف يُمرر هذه المعلومات للصندوق الأب ليُقرر العرض ويحدد الموقع الصحيح للزر. توجد مساحة في هذا المثال تتسع لنمط float بحجمه الأعظمي وهو الحجم الذي سيُعرض به الزر. يُغيّر المتصفح تموضع محتوى تنسيق كتلة article، ليضمن التزام المتصفح بالمعايير والتفاف المحتوى حول العنصر العائم float، حيث يُمرّر الموقع إلى المقطع ليستخدمه أثناء إنشاء التخطيط. يتابع المتصفح من هنا نفس عملية التخطيط التي شُرحت في المثال الأول، ولكنه يتأكد من أنّ أي محتوى سطري أو أنّ موقع بداية أي كتلة هو خارج المساحة المحجوزة من قبل float. يتابع المتصفح المرور على الشجرة واستنساخ العُقد متجاوزًا المساحة المحجوزة للكتلة السابقة، وهذا يسمح للسطر الأخير من النص (والسطر الذي قبله) بالانطلاق من بداية صندوق المحتوى مع اتجاه السطر، ثم يعود المتصفح ليمر على الشجرة بالاتجاه المعاكس ليُفسر قيم auto وقِيَم النسب المئوية حسب الحاجة. فهم عملية التجزئة Fragmentation التجزئة هي المفهوم الأخير الواجب الإضاءة عليه لفهم آلية عمل المُخطط ولا بد أن تكون استعملت هذا المبدأ عند طباعة صفحة ويب أو عند استخدام تنسيق CSS متعدد الأعمدة، إذ أن التجزئة أو التقسيم هي تفريق المحتوى عن بعضه ليتسع ضمن مساحات بأشكال هندسية مختلفة. لفهم الأمر، ألقِ نظرةً على نفس المثال الذي يستخدم CSS متعدد الأعمدة. <body> <div> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nibh orci, tincidunt eget enim et, pellentesque condimentum risus. Aenean sollicitudin risus velit, quis tempor leo malesuada vel. Donec consequat aliquet mauris. Vestibulum ante ipsum primis in faucibus </p> </div> <style> body { columns: 2; column-fill: auto; height: 300px; } </style> </body> حالما يصل المتصفح لصندوق محتوى التنسيق متعدد الأعمدة، سيلاحظ وجود مجموعةٍ من الأعمدة. سوف يتبع نفس نموذج الاستنساخ كما في السابق، ثم يُنشئ مُجزّأةً بأبعادٍ صحيحةٍ ليُنفذ رغبة المؤلف بما يخص الأعمدة. يرسم المتصفح بعدها ما أمكن من سطور متّبعًا نفس النمط السابق، ثم يُنشئ مجزّأةً أخرى ويتابع رسم المُخطط حتى النهاية. الرسم تحدثنا حتى الآن عن كامل محتوى CSS وتحليله وتوريثه ضمن شجرة DOM والمخطط الكامل، لكننا لم نتحدث عن تطبيق اللون أو الحدود أو الظلال وما شابهها من تصميمٍ للمخطط، ويُدعى ما سبق من أمور بالرسم. توجد معايير للرسم في تنسيقات CSS، وتستطيع قراءة شرح كامل ضمن CSS 2.2 Appendix E. تتبع عملية الرسم الترتيب التالي: الخلفية الحدود المحتوى بالتالي إذا عُدنا لزر "Share it" السابق واتّبعنا نفس العملية، فسوف تسير بالترتيب الموّضح في الشكل التالي. حالما تنتهي العملية السابقة، سوف يُحوّل العنصر إلى صورة نقطية وهي النتيجة النهائية لكل عنصر ضمن المُخطط. خاصية تكديس المحتوى تتألف معظم المواقع الإلكترونية من أكثر من عنصر، وغالبًا سنحتاج لعرض بعض العناصر فوق عناصر أخرى. لتحقيق هذا، نستطيع الاستفادة من خاصية z-index لتحديد موقع عنصر فوق عنصر آخر، وبالتالي تكديس محتوى فوق محتوى. إن إنشاء محتوى مُكدس جديد يُغير ترتيب رسم العناصر، ألقِ نظرةً على المثال التالي: <body> <div id="one"> Item 1 </div> <div id="two"> Item 2 </div> <style> body { background: lightgray; } div { width: 300px; height: 300px; position: absolute; background: white; z-index: 2; } #two { background: green; z-index: 1; } </style> </body> سوف يُرسم الملف السابق حسب ترتيب ورود العناصر دون استخدام z-index أي أنه سيرسم "item2" فوق "item1"، ولكن عند استخدام z-index، يتغير ترتيب الرسم. ستُشرح كل خطوة كما هو الحال في الأمثلة السابقة. يبدأ المتصفح بالصندوق الجذر المرسوم في الخلفية. يتجاوز المتصفح ترتيب العناصر في الملف ليبدأ بأدنى مستوى في المحتوى المُكدّس (في هذه الحالة هو العنصر "item2")، ثم يبدأ برسم العنصر التالي متّبعًا نفس القواعد السابقة. ينتقل المتصفح الآن للمستوى الأعلى للمحتوى المُدّكس (وهو "item1" في هذه الحالة)، ثم يرسم هذا العنصر معتمدًا على الترتيب المُعرف في CSS 2.2. لا يأخذ z-index اللون بالحسبان، بل هو مسؤول فقط عن العنصر المرئي بالنسبة للمستخدِم وبالتالي النص واللون الظاهرين له. التكون Composition وصولًا لهذه النقطة، يوجد على الأقل صورةٌ نقطيةٌ واحدةٌ انتقلت من الرسم إلى المكوّن الذي ينشئ طبقة أو طبقات ثم يعرض الصورة النقطية على الشاشة ليراها المُستخدم. لتفسير حاجة أي موقع أكثر من صورة نقطية أو مكوّن طبقة، ألقِ نظرةً على المثال التالي الأكثر تعقيدًا، وافترض أن فريق عملك يحتاج لفت النظر لجزء من الموقع من خلال جعله ينبض باستخدام تحويل CSS. ستكون الشيفرة لهذا القسم والذي يُدعى Clippy كالتالي: <div class="clippy"></div> <style> .clippy { width: 100px; height: 100px; animation: pulse 1s infinite; background: url(clippy.svg); } @keyframes pulse { from { transform: scale(1, 1); } to { transform: scale(2, 2); } } </style> عندما يقرأ المتصفح أن المطور يريد تحريك Clippy ضمن حلقة لا نهائية فسيكون لديه خياران: العودة لمرحلة الرسم من جديد لكل إطار من عملية التحريك وإنشاء صورة نقطية جديدة وإرسالها من جديد للمكوّن. أو يُمكن إنشاء صورتين نقطيتين مختلفتين، والسماح للمكوّن بالتحريك بنفسه فقط على الطبقة التي طُبقت عليها عملية التحريك. سوف يختار المتصفح في معظم الحالات الخيار الثاني ليُنشئ التالي. ثم يُعيد رسم الصورة النقطية Clippy في الموقع الصحيح مع تطبيق الحركة النابضة له وهذا يُحقق أداءً أفضل، ففي كثيرٍ من المحركات يكون المكوّن ضمن خيطٍ thread خاصٍ به، وهذا يحول دون حجز الخيط الرئيسي. إذا اختار المتصفح الخيار الأول فيجب عليه حجز الخيط الرئيسي في كل إطار لتحقيق نفس النتيجة، وهذا يؤثر سلبًا على الأداء والتجاوب بالنسبة للمستخدم. تطبيق وهم التفاعلية بعد تغطيتنا لكيفية استخدام جميع تنسيقات CSS وDOM لإنشاء صورة وعرضها على المستخدم، سنتعلم كيفية تحقيق المتصفح وهم التفاعلية. ألقِ نظرة على المثال التالي الذي سوف نستخدم ضمنه زر Share it بإسلوبٍ متجانسٍ تفاعلي. button { float: left; background: rgb(210, 32, 79); padding: 3px 10px; border: 2px solid black; } button:hover { background: teal; color: black; } أُضيف هنا شبه صنف يُخبر المتصفح أن عليه تغيير خلفية الزر ولون النص عندما يحرك المستخدم الفأرة فوق الزر وهذا يدفع للتساؤل "كيف يتعامل المتصفح مع هذه الحالة؟". يتتبع المتصفح مجموعةً متنوعةً من المُدخلات تمر بعملية تُدعى hit testing أثناء تغيّرها، وتبدو العملية للمثال السابق كالتالي. يحرك المستخدم الفأرة فوق الزر. يرفع المتصفح حدث event يُخبر بأن الفأرة قد تحركت لتدخل خوارزمية hit testing، والتي تسأل ما يلي "ما هو الصندوق أو الصناديق التي تلمسها الفأرة؟" تُعيد الخوارزمية الصندوق المرتبط بزر Share it. يسأل المتصفح نفسه "هل يجب أن أفعل أي شيءٍ طالما أن الفأرة تتحرك فوق هذا الصندوق؟" يُشغل المتصفح بسرعة التنسيقات والتوريث لهذا الصندوق وأبنائه ليُقرر وجود شبه صنف hover: مع تعديلات رسم للتنسيق فقط ضمن هذه الكتلة. يعلق المتصفح هذه التنسيقات في عنصر DOM (كما هو الحال في مرحلة التوريث) وهو الزر في هذه الحالة. يتجاوز المتصفح المخطط السابق ويرسم مباشرةً صورةً نقطيةً جديدة. تُمرر الصورة النقطية الجديدة للمكوّن ثم إلى المستخدم. ينتج عن العملية السابقة إيهام المستخدم بوجود تفاعلية بالرغم من أن المتصفح يستبدل فقط صورة برتقالية بصورة خضراء. الخلاصة أزال هذا المقال بعض الغموض عن عملية تحويل شيفرة CSS إلى بكسلات مصيرة أو مخرجة ضمن المتصفح، حيث تكلمنا عن كيفية تحليل CSS، وكيفية حساب القيم، وكيف يعمل توريث التنسيق والتخطيط والرسم والتكوّن. ترجمة -وبتصرّف- للمقال Braces to Pixels لصاحبه Greg Whitwort. اقرأ أيضًا تنسيقات المتصفحات المخصصة ودعمها وأداءها في CSS تنسيق الصور في CSS التنسيقات الأساسية للعناصر في CSS تنسيق الخلفيات Backgrounds في CSS
-
سنتحدث في هذا المقال عن لوحة تحكم ووردبرس وكيفية إدارتها وتخصيصها، إضافةً إلى أهميتها وطرق الاستخدام الأفضل لها، كما سنشرح الفرق بين برمجية ووردبريس التي تستطيع تنزيلها من wordpress.org، وخدمة ووردبريس لبناء المواقع والتي تستطيع التسجيل فيها من خلال WordPress.com مع ذكر إيجابيات وسلبيات كل منهما لوحة تحكم ووردبريس تتميز لوحة التحكم في ووردبريس بالبساطة والتعقيد في آن معًا، فعند دخولك للوحة التحكم لأول مرة؛ ستظهر لك نافذةً مليئةً بالودجات تتضمن معلومات عن موقعك، إضافةً الى قائمة على يمينك لجميع الميزات والخيارات المتوفرة في الموقع بدون شرح عنها، لذلك سنتعرّف على لوحة تحكم ووردبريس بكل أجزائها لتأخذ اطلاعًا على جميع خفايا ومميزات هذا الجزء من موقعك الذي ستقضي معظم الوقت متجولًا فيه. لمحة عن لوحة تحكم ووردبريس يمكننا عدّ لوحة تحكم ووردبريس نقطة البداية لكامل أقسام الموقع، وبكل تأكيد فإن صلاحياتك التي تملكها للموقع هي التي تحدد ما ستراه على اللوحة، بحيث ستجد بعض الاختلافات عند دخولك من حسابات مختلفة بصلاحيات مختلفة، عمومًا تتكون لوحة ووردبريس من عدة ودجات أساسية تربطك مع الموقع بطرق متنوعة، ومع مجتمع ووردبريس وهي: الحالة الصحية للموقع. النشاط. أحداث وأخبار ووردبريس. مسودة سريعة. تقدم كل ودجت من الودجات السابقة معلومات قيّمة عليك الاطلاع عليها قبل الانطلاق لإنجاز مهامك الأخرى. الحالة الصحية للموقع يُعَد صندوق الحالة الصحية للموقع أهم قسم في لوحة التحكم، إذ يشير إلى مجموعة أمور حساسة، مثل المخاطر الأمنية والنقص في مكتبات PHP، وبعض المشاكل في الخادم التي يجب معالجتها سريعًا. حيث تتحول صحة الموقع للون الأحمر أو الأصفر في الوضع غير الصحيّ، فإذا رأيت أيًا من هذين اللونين فعليك التوجه لرابط "صفحة التحقق من صحّة الموقع" للتعرف على المشكلة التي تواجه موقعك، فغالبًا ما تكون المشكلة تنبيه لضرورة تحديث الإضافات أو القوالب. لمحة سريعة توفر ودجت لمحة سريعة ملخصًا عن الموقع فهي تعرض العدد الكلي للمنشورات والتعليقات والصفحات ضمن موقعك، وكذا نسخة ووردبريس الحالية والقالب المُستخدم ومعلومات مفيدة أخرى مثل رسالة "منع محركات البحث من أرشفة الموقع". النشاط لا حاجة لشرح عمل هذه الودجت، فالاسم يتكلم عن وظيفتها، فهي تعرض أحدث المنشورات والتعليقات في الموقع، وتستطيع بالنظر لها التأكد من أن المقالات تُنشر على موقعك وفق الجدول الزمني المُحدد. إضافةً إلى ما سبق، تستطيع حذف تعليق أو تصنيفه على أنه تعليق مزعج بنقرة زر واحدة عبر الودجت. مسودة سريعة يمكنك عدّ المسودة السريعة بمثابة دفتر ملاحظات، فأنت لا تستطيع النشر من خلالها ولكنك قادر على حفظ العدد الذي تريده من المسودات، ولا يُنصح باستخدامها لكتابة مسودة مقال كامل، لكن فقط لكتابة عنوان المقال والنقاط العامة له. يوفِّر استخدام هذه الودجت الوقت، خصوصًا عندما يكون لديك مشروع وتحتاج لعمل ملاحظات سريعة، فهي تسمح لك بإنجاز ذلك دون الحاجة لإضافات أو التنقل بين القوائم والنوافذ وحتى بدون انتظار تحميل المحرر. أحداث وأخبار ووردبريس يُعَد مجتمع ووردبريس أحد أهم مميزات المنصة، لذلك عَمِل فريق تطوير نواة ووردبريس على بناء خط تواصل مباشر مع هذا المجتمع عبر ودجت أحداث وأخبار ووردبريس، بحيث تعرض هذه الودجت أخبار مدونة WordPress.org وأخبارًا متنوعةً عن ووردبريس من مصادر متنوعة، وبهذا لن تغفل عن متابعة ما يحدث في عالم ووردبريس. تُمكنك هذه الودجت من معرفة أوقات وأماكن الفعاليات الجديدة التي تُقام بالقرب من موقعك، وتستطيع الاعتماد على WordCamps ولقاءات ووردبرس حول العالم، كونها أصبحت جزءًا أساسيًا لمستخدمي ووردبريس للاطلاع على فعاليات المجتمع الرسمي القريبة، كما تستطيع أيضًا التسجيل ضمن الفعاليات التي تحصل عن بعد عبر الويب. ودجات إضافية للوحة تحكم ووردبريس تستطيع تخصيص لوحة تحكم ووردبريس بالودجات التي تريد أو بالمتوفرة لديك، فبعض هذه الودجات قد تحتوي خيارات لا تتضمنها الإضافات التي تستخدمها. تسمح لك إحدى أهم الودجات التي تأتي مع إضافة Jetpack، بإضافة ملخص لآخر إحصائيات موقعك ضمن ودجت منفصلة، كما تستطيع استخدام مرشحات لتخصيص مجال تاريخ عرض هذه البيانات. تظهر في الصورة السابقة Site Kit Summary التابعة لإضافة Google Site Kit، والتي تُعد مُكملةً لإحصائيات Jetpack، حيث تعرض إحصائيات Google Analytics وGoogle Search Console ضمن ودجت للوحة التحكم أيضًا. تظهر إضافة Yoast SEO -وهي أحد أهم إضافات السيو- تلقائيًا في ودجت لوحة التحكم لإعطائك فكرةً عن أداء موقعك بالنسبة لمعايير السيو. لوحات تحكم ووردبريس مخصصة بالكامل إذا احتجت مزيدًا من الودجات لتضيفها على لوحة التحكم، فيوجد مجموعة إضافات تمنحك تحكمًا كاملًا بلوحة تحكم ووردبريس، ويُمكن أن تُخصص أيضًا لوحات تحكم مختلفة الصلاحيات لمستخدمين مختلفين ضمن موقعك، واختيار ما يرونه بناءً على رتبهم. أحد أهم الإضافات في هذا المجال هي إضافة Ultimate Dashboard، والتي تسمح لك بتغيير لوحة تحكم ووردبريس من صفحة بسيطة يُوجَّه إليها المستخدم بعد التسجيل في الموقع، إلى مركز عمليات لموقعك لتُقلل حاجتك لاستخدام القائمة الجانبية. تسمح لك إضافة Ultimate Dashboard بتخصيص ودجات لوحة التحكم ضمن عدة أمور سهل التحكم بها، فتستطيع من خلالها مثلًا، تخصيص نافذة الدخول للموقع وشريط مدير الموقع الذي يظهر في أعلى الصفحة وحتى القائمة الجانبية على يمين لوحة التحكم. يُعَد إنشاء لوحة التحكم أمرًا بسيطًا جدًا مماثلًا لاستخدام إضافتك المفضلة لبناء صفحات ووردبريس على سبيل المثال. ما الفرق بين WordPress.com وWordPress.org تبلغ حصة ووردبريس اليوم حوالي الثلث من نسبة مواقع الإنترنت حول العالم، وهذه نسبة ضخمة، ولكن عندما تقول "ووردبريس" فهذا يحمل أكثر من معنى. نفس البرمجية الأساسية ولكن عند الاختيار بين WordPress.com وWordPress.org، فأنت ستُفضل بذلك مجموعةً محددةً من الخصائص على الأخرى، كما سيختلف أيضًا الاستخدام اليومي، لذلك سوف نشرح الوجهين السابقين للوردبريس للاختيار بينهما بما يُناسبك ويُناسب موقعك. ما هو ووردبريس؟ يَنظر العديد لووردبريس على أنه منصة للتدوين وهو كذلك فعلًا، ولكن خلال العقدين الماضيين تطور ليصبح أكثر من ذلك، حيث صار نظامًا لإدارة محتوى أي نوع من المواقع، إذ تستطيع استخدامه لموقعك حتى لو لم تكن تكتب وتنشر بانتظام، كما يُمكنك استخدامه مثل صفحة هبوط أو معرض أعمال أو حتى متجر إلكتروني، وغيرها الكثير من الأمور. خصائص وميزات ووردبريس هو عبارة عن برمجية مفتوحة المصدر تستخدِم رخصة GPL وتتلقى تحديثات منتظمة ومستمرة تُضيف ميزات جديدة وتُحسّن القديمة. يمتلك واجهةً سهلة الاستخدام لمدير أو كاتب محتوى. يسمح لك محرر Gutenberg بتخصيص الموقع كاملًا حال تثبيته. يُمكن تصميم المحتوى باستخدام هيكليات متعددة مثل أنواع المنشورات المُخصصة أو امتلاك بيانات وصفية فريدة أو تصنيفات متنوعة وغيرها. نظام إدارة محتوى كامل: إنشاء محتوى (التدوين والتدوين الصوتي ومقاطع الفيديو والبث المُباشر…الخ). صفحات هبوط ثابتة. إدارة ملفات الوسائط. يُمكن استخدام إدارة المستخدم المبنية مسبقًا ضمن النظام مع مواقع العضوية أو المتاجر الإلكترونية. يمنح نظام قوالب ووردبريس تحكمًا كاملًا بالموقع. مَهمة القالب لا تنحصر بتغيير شكل الموقع بل تضيف له وظائف جديدة أيضًا. توجد آلاف القوالب المجانية والمدفوعة لتختار منها، والعديد منها مُضاف من قِبل ووردبريس نفسه. يُمكن إضافة ووردبريس في أي مكان فهو مدعوم عالميًا. تستطيع تخصيص رابط ونطاق ووردبريس عبر لوحة التحكم. سريع وسهل التحميل. قابلية ووردبريس للتطوير تعني امكانية أي أحد على إنشاء إضافة وربطها مع نظام إدارة المحتوى مع إضافة ميزات أو تغيير آلية عمل جزء منه. يستطيع المطورون الاستفادة من الـ API الخاص بووردبريس وREST API وطلبات Https وإعادة توجيه الرابط وقواعد بيانات MySQL، كما أن ووردبريس قابل للترجمة ويملك نظام إدارة المُستخدِمين والكثير من الميزات الأخرى. مجتمع ووردبريس مجتمع ووردبريس المُلم بتفاصيل وخبايا ووردبريس هو الميزة الكُبرى له، والتي تأتي بمقدمة مميزاته التقنية، وأفراده مُستعدون لتقديم المساعدة للوافدين الجُدد دائمًا، حيث تستطيع الحصول على كل ما سبق في النسختين الموجودتين من ووردبريس، ولذلك سنضع كل نسخة على حِدة تحت المجهر للتعرّف على نقاط قوتها وضعفها لتتمكن من الموازنة بينهما. ما هو WordPress.org؟ عند الحديث عن WordPress.org فغالبًا أنت تُشير إلى البرمجية المستقلة مفتوحة المصدر من نظام إدارة المحتوى في ووردبريس، والتي تحتاج لإضافة تعمل عبرها. تستطيع تثبيت واستخدام WordPress.org مجانًا بأي طريقة تراها مناسبة، طبعًا هناك بعض القيود لهذا الأمر، ولكن إن كنت تفكر في استخدام ووردبريس بالطريقة الشائعة، فتوجه إلى WordPress.org، حيث ستُلاحظ أن بعض الإصدارات من WordPress.org يُشار لها بمُصطلح ذاتية الاضافة، وهذا يعني أن البرمجية نفسها مجانية، ولكن يجب امتلاك إضافة لتثبيته عليها، كما تستطيع تشغيل ووردبريس على حاسوب محلي ولكن هذا يُستخدم غالبًا في مراحل التطوير وحل المشاكل. تُكلف اضافة ووردبريس بالعموم بين 5 دولارات إلى 25 دولارًا شهريًا، والعديد من الاضافات المُدارة تصل كلفتها الشهرية لمبالغ أكبر من ذلك بكثير. إيجابيات إصدار WordPress.org الميزة الأكثر إيجابيةً وقوةً في هذا الإصدار هي الحرية التي تمتلكها لفعل ما تريد به، فأنت غير مقيد بأي شروط خدمة ما عدا شروط الخدمة التابعة لمزود الإضافة، وغير مقيد بمحتوى أو قالب أو إضافة لاستخدامها، لذلك تستطيع فعل ما تراه مناسبًا. بهذه النسخة أنت مالك المحتوى، وبالتالي لك حق الحذف أو التعديل أو الإبقاء على المحتوى بدون تدخل خارجي مثل المنصات أو الخدمات، فهم لا يضعون شروطًا على المنشورات لتتوافق مع مصالحها، وبالتالي فأنت حر بالكامل بالمحتوى والتصميم، وهذه بالطبع علامة فارقة لووردبريس وسبب رئيس في نشره بمثابة برمجية مفتوحة المصدر. يعمل WordPress.org على عكس WordPress.com فيما يخص استخدام القوالب والإضافات وأنواع التعديلات والتطويرات البرمجية، حيث توجد حدود ومقيدات تُعسّر بناء موقعك كما تريد، ولكن عليك الدفع مقابل بنائه كما تريد وهذا مختلف تمامًا عن الوضع في WordPress.org. إضافةً لما سبق تستطيع عرض أي نوع من الإعلانات وعروض المنتجات على موقعك عبر متجر ووكومرس، والشروط الوحيدة التي تُقيدك هي الشروط الموجودة من قِبل شركة الإعلانات التي تنشر إعلاناتها لديك. سلبيات إصدار WordPress.org توجد إيجابيات وسلبيات لكل شيء، والسلبية الأكبر لهذا الإصدار مرتبطة بالنقطة الأكثر قوةً وهي حرية الاستخدام، فامتلاكك لهذه المقدرة يعني أنك مسؤول وحر التصرف بالأمور المتعلقة بالصيانة وشراء القوالب والإضافات والتطويرات التي تجريها على النواة والمشاكل المرتبطة كذلك، والتي يُمكن أن تظهر لاحقًا. تحتاج أيضًا لاختيار الاضافة الأمثل لك والتأكد أنها تقدم كل ما تحتاجه، فمثلًا اضافة Pressable مميزة لووردبريس ولكنها لا تُقدم خدمة بريد إلكتروني. من هم مستخدمو WordPress.org WordPress.org هو خيار كل من هو بحاجة موقع إلكتروني، مهما كانت الغاية منه، فستستطيع إنشاء هذا الموقع باستخدام WordPress.org مع مطلق حرية التصرف به من كافة النواحي بما فيها التصميم والمحتوى؛ أما الجانب السلبي الوحيد لهذا الخيار فهو أنك أنت المسؤول عن جميع أجزاء الموقع التقنية وغير التقنية. ومع ذلك يبقى هذا هو الخيار الأفضل لمن يفكر بامتلاك موقع إلكتروني. ما هو WordPress.com؟ WordPress.com هو خدمة مجانية لبناء موقع إلكتروني، أما WordPress.org فقد كان عبارة عن برمجية مفتوحة المصدر مجانية لبناء موقع إلكتروني، لهذا لست بحاجة لتنزيل أي شيء أو تثبيته، كل ما عليك هو تسجيل حساب وإنشاء موقع إلكتروني مُستضاف من قبل WordPress.com، لن تحتاج لدفع أي نقود مقابل الخطوات السابقة، فقط عليك اختيار القالب المناسب لموقعك مع بعض الاقتراحات للإضافات المناسبة ورابط الموقع وهو نطاق فرعي من WordPress.com ليأخذ الشكل التالي: Yoursite.wordpress.com تعمل هذه الخدمة على اختيار كل شيء لك وبالتالي لست بحاجة للبحث عن الاضافة المناسبة أو ضبط إعداداتها ولا حتى تثبيت برمجية أو إنشاء قاعدة بيانات، لذلك فالخيار يعود لك بين الحرية التي يوفرها إصدار WordPress.org والسهولة التي يوفرها إصدار WordPress.com. إيجابيات إصدار WordPress.com إن كنت تبحث عن موقع إلكتروني مجاني بسيط بدون مشاكل، فإن WordPress.com يقدم لك كل ما سبق، حيث تبدأ عملية بناء موقعك لحظة تسجيلك ضمن WordPress.com لتختار بعدها اسم ورابط وقالب، ثم تبدأ مباشرةً بنشر محتواك ضمن موقع خاص بك. يوفر عليك WordPress.com عناء البحث عن إضافة مناسبة، وفي هذه الحالة يكون موقعك مُضاف ضمنه، ويمنحك مساحةً محدودةً ولكنها جيدة للموقع (3 جيجا بايت)، قبل أن يطلب منك الاشتراك بإحدى الباقات المدفوعة. يتطلب بناء موقعك عبر هذه الخدمة لحظات فقط بدون تكاليف اضافة أو نطاق، كل ما عليك فعله هو التسجيل بالموقع فقط. يعمل WordPress.com على أخذ نسخة احتياطية لموقعك دوريًا، كما يعمل على ترقية نسخة ووردبريس تلقائيًا، ويتحمل كل الأمور المرتبطة بالصيانة لتنعم براحة بال مُطلقة دون الحاجة للخوف من وجود ثغرات أمنية ناتجة عن قالب أو إضافة أو إصدار قديم يحتاج لتحديث. يستخدم WordPress.com إضافة Pressable وهي من أفضل الإضافات، لذلك لا حاجة للقلق بشأن استقرار الموقع. سلبيات إصدار WordPress.com تُقيّد المواقع ضمن WordPress.com ببعض الحدود التي تعد السبب الرئيسي الذي يدفع المستخدمين بعيدًا عن هذه الخدمة، ولأنها خدمة وليست برمجية، فإن الشركة Automatic التي تُشغّله تسعى لكسب الربح، ومثل أي خدمة مجانية على الإنترنت، تُقدم لك أساسيات الخدمة مجانًا وكل ما عدا ذلك هو مدفوع سواءً باشتراك شهري أو دفع لمرة واحدة، ولهذا فما عليك سوى الدفع مقابل الحصول على نطاق خاص بك منفصل عن نطاق WordPress.com. الأمر ذاته لاستخدام أي قالب تريده ضمن القائمة المسموح بها من قبل المنصة) وحين استخدام الإضافات أيضًا فإذا أردت إنشاء موقع تجارة إلكترونية، فعليك إذًا ترقية الباقة وقس على ذلك. تبدأ باقات منصة WordPress.com من 7$ شهريًا حتى 59$ شهريًا مع وجود خصم عند الدفع سنويًا، بحيث لا تكون حدود الباقة المجانية الدافع الوحيد الذي يُجبرك على الترقية لباقة مدفوعة أو الانتقال لخيار بديل لبناء الموقع، إذ خدمة WordPress.com إعلانات على موقعك دون استئذانك، وبالتالي كما يُقال: "إن لم تكن تدفع لقاء المنتج فأنت المنتج"، وهكذا فإن شركة Automatic تحقق منك ربحًا عند استخدامك لخدمتهم سواءً كنت تدفع مقابل ذلك أم لا، وهذا على حساب مستخدمي موقعك في حالة الباقة المجانية. لا يُمكنك استخدام خدمات خارجية مثل Google Analytics أو Google Adsense، لكن تستطيع التقدم بطلب للانضمام لنظامهم الإعلاني الخاص واستخدام إحصائيات Jetpack، أو يُمكنك ترقية باقتك لباقة مدفوعة والحصول على بعض الحرية. أنت مُلزم أيضًا بشروط الخدمة واتفاقية المستخدم التي تُحددها خدمة WordPress.com، مما يعني أنّ لهم الحق في فعل ما يرونه مناسبًا بموقعك، فبالرغم من امتلاكك المحتوى المنشور ضمن الموقع، إلا أن WordPress.com يستطيع الاستفادة منه واستخدامه للترويج؛ أما إذا كان محتواك مخالفًا لشروط الخدمة، فيحق لـ WordPress.com إيقاف الموقع عن العمل بدون موافقتك وفي بعض الأحيان بدون إعلامك حتى. من هم مستخدمو WordPress.com؟ تُناسب الباقة المجانية ضمن WordPress.com مَن يريد نشر محتواه دون الحاجة للقلق حول مواضيع الصيانة وما يرتبط بها، كما أن استخدام هذه الخدمة يسمح لك بالإعلان عن موقعك خلال لحظات دون دفع تكاليف مسبقة أو بذل مجهود يُذكر، لذلك فإن كنت بحاجة موقع مؤقت أو موقع لعرض عملك أو حتى نشر يومياتك، فإن WordPress.com خيار مناسب لك. يُعَد WordPress.com خيارًا مناسبًا أيضًا لمن يبحث عن تجربة خالية من المتاعب خصوصًا أصحاب العمل والمواقع ذات عدد زيارات ضخم. تستهدف باقات WordPress.com VIP الشركات العملاقة وليس الأشخاص العاديين، حيث تبدأ باشتراك 2000$ شهريًا، وهنا لن تنشغل بأي موضوع تقني مرتبط بالموقع، وهذه حقيقة تنطبق على باقات أخرى ولكن تلك موجهة لأشخاص عاديين؛ أما باقات VIP فهي للشركات ضمن قائمة الـ500 شركة بمجلة Fortune. الخلاصة قد تظن للوهلة الأولى أن لوحة تحكم ووردبريس ليس لها فائدة، ولكن كمية المعلومات التي توفرها الودجات بنقرة واحدة منك تجعل العمل أسهل وأسرع وأكثر كفاءة، وإذا أحسنت اختيار الإضافات فستستطيع تحقيق جميع رغباتك في الموقع لحسابك أو حساب فريق العمل أو حتى عملائك، كما ستقدم لكل منهم التجربة الأمثل لاستخدام موقعك. وتتيح لوحة تحكم ووردبريس خدمات واسعة، مثل الاطلاع على الإحصائيات أو معالجة التعليقات المزعجة، أو حتى العثور على WordCamp مناسب. وحسب ما ورد في المقال، نستطيع القول أن WordPress.org هي المنتج الأفضل مع الحاجة لبذل مجهود إضافي وتعلم آلية عمل بعض الأمور وفهمها، فأنت مالك الموقع ومُستخدم ضمنه وما يجعل هذا الخيار يتفوق على نظيره هو مقدار الحرية التي يُقدمها، حيث تستطيع اختيار القالب أو الإضافة التي تريد دون الحاجة للالتزام بقائمة محددة، ولا داعي للخوف من تعطيل الموقع أو حذف المحتوى لأنك مالك المحتوى والنطاق والإضافة ولا أحد يستطيع تقييد حريتك. تبقى الخدمة المُقدمة من WordPress.com خدمةً مميزةً، فإن قررت استضافة موقعك عليها، فستلاحظ استقرار الخدمة وسهولة استخدامها دون مشاكل تُذكر، لكنك قد تضطر لدفع المال إن احتجت لأي شيء، لذلك فإن كنت تمتلك ميزانيةً كافيةً وتريد رفع أعباء المواضيع التقنية عن كاهلك فإن WordPress.com مناسب لك. تبقى تكاليف تشغيل موقع باسخدام WordPress.org، وأقل حتى بوجود اشتراك شهري للاستضافة، والتي تستطيع استخدامها لعدة مواقع بدلًا من موقع واحد. ترجمة -وبتصرّف- للمقالين WordPress Dashboard: the Complete Guide، وWordPress.com vs WordPress.org: What’s the Difference؟ لصاحبه B.J. Keeton. اقرأ أيضًا استخدام لوحة تحكم cPanel لتثبيت ووردبريس لمحة عن لوحة تحكم ووردبريس ضبط شاشة الإعدادات العامة بلوحة تحكم ووردبريس دليل نقل موقع ووردبريس وكيفية التعامل مع صفحة إعدادات الروابط الثابتة
-
العماد الأساسي الذي تعتمد عليه منصة ووردبريس لجعل المنصة أكثر تفاعُلًا مع المستخدم هي صفحات ومقالات ووردبريس، لكونها مساحةً القراءة والكتابة والنشر في الأساس، ومقالات ووردبريس هي المحتوى المتجدد الذي يُنشر بانتظام على موقعك الإلكتروني، وهو الذي يظهر للقراء تحت علامة "جديد" في مواقع الأخبار؛ بينما صفحات ووردبريس هي الوجه الآخر للعُملة، ويميزها المحتوى الثابت على عكس المقالات، مثل صفحة "من نحن"، وصفحة "اتصل بنا"، وصفحة "سياسة الخصوصية"، وغيرها من الصفحات. ما هي صفحات ووردبريس؟ الصفحات هي المساحة التي تتضمن المحتوى الثابت عمومًا ولكنه قابلٌ للتعديل في نفس الوقت، فعند إنشاء صفحات جديدة أو تحديث محتوى الصفحات، لا يُرسل إشعار إلى المستخدمين أو محركات البحث بذلك على عكس ما يحصل في حالة المقالات. ولكن ستعرف محركات البحث التغييرات الحاصلة على الصفحات عندما تصل إلى الموقع تلقائيًا وليس بسبب تنبيه مُرسل من الموقع ذاته. أما عن تعريف ووردبريس للصفحات فهو: تُعَد صفحة "من نحن" أو "اتصل بنا" أمثلةً جيدةً عن المعلومات التي تتضمنها الصفحة، وننوّه للخلط الحاصل بين الصفحات والمقالات ذات الطابع الزمني، والربط الخاطئ بين صفحة ووردبريس وكلمة "صفحة" التي تشير لأي صفحة ويب أو ملف HTML ضمن شبكة الويب. من المحتمل أن تُنشئ صفحات جديدة مثل صفحات لطرح مشاريع جديدة أو حتى لإعلانات مؤقتة، وفي حين أن هذه الصفحات ستُفهرس من قِبل محركات البحث؛ إلا أن استخدامها لإنشاء مساحات مؤقتة على موقعك الإلكتروني يسمح لك باستهداف أشخاص محددين، فهي لا تُعرض بجانب آخر المقالات ضمن المدونة التي يراها الجميع. إنشاء صفحة ووردبريس بعد تبيُّننا لماهية الصحفات وأهمية استخدامها، سنشرح كيفية إنشاء هذه الصفحات؛ توجه إلى لوحة تحكم ووردبريس وابحث عن صفحات (1) ضمن القائمة الجانبية على اليمين، ثم اضغط على كل الصفحات أو أضف جديدًا (2)، حيث يمنحك كلا الخيارين السابقين إمكانية إنشاء صفحة ووردبريس. تَعرِض كل الصفحات الصفحات التي أنشأتها على موقعك، وفي حال ضغطت على أضف جديدًا ضمن القائمة الجانبية أو في أعلى النافذة، فسيؤدي كِلا الخيارين لمحرر ووردبريس الافتراضي. لا تختلف وظائف محرر وووردبريس في الصفحات عن المقالات، وإذا لم تملك تصميمًا مخصصًا لمحتوى صفحتك وكانت تحتوي على كتابات فقط، فالمحرر سيفي بالغرض؛ أما في حال وجود تصميم مميز للصفحة، فستلجأ لاستخدام باني الصفحات المفضل لديك مثل Divi أو Elementor لتحرير مضمون الصفحة (4)، بالإضافة لاستخدام المحرر الافتراضي لتحرير وإدخال البيانات الوصفية لتكامل العملية. كتابة وتحرير صفحة ووردبريس سيكون لأي صفحة ووردبريس عنوان (3) يعبّر عنها، ويجب ملائمة عنوان الصفحة للسيو seo، حيث سُحدد العنوان الرابط الدائم (5) للمنشور، فعلى سبيل المثال لو كان عنوان الصفحة "ما تريد أن تعرفه عنا"، فإن الرابط سيكون: yoursite.com/ما-تريد-أن-تعرفه-عنا الصفحات مستقلة بحد ذاتها كونها مختلفة عن المقالات، فهي لا تمتلك التصنيفات المعتادة للمقالات مثل التصنيفات والوسوم، أو حتى التاريخ. فمثلًا إن ضبطت بُنية الرابط الدائم لموقعك ليتضمن الشهر، فإن الرابط الدائم للصفحات سوف يبقى على حاله مُتضمنًا اسم الصفحة فقط. يجب عليك اختيار الصورة البارزة (6) التي تُستخدم بطرق مختلفة من قبل العديد من القوالب والإضافات، ولا تنسى الاطلاع على صندوق المناقشة (7)، إذ أن التعليقات مُفعّلة افتراضيًا على صفحات ووردبريس، لذلك أبقِها مُفعلة أو ألغِ تفعيلها حسب رغبتك، حيث ستحتاجها للحصول على تغذية راجعة من الزوار عند إدلائك لتصريح معين أو نشر سياسة جديدة خاصة بموقعك، وبكل تأكيد لن تحتاج سلسلةً من التعليقات على صفحة "اتصل بنا"، لأن الغرض منها هو عرض طرق التواصل مع فريق الموقع، لذلك تستطيع تعطيل التعليقات على مثل هذه الصفحات بعد الانتهاء من الخطوات السابقة، وكذا ضبط الخيارات حسب رغبتك. اضغط على نشر لتنتقل الصفحة للعمل مباشرةً على موقعك وليستطيع الزوار الوصول إليها. إدارة صفحات ووردبريس تستطيع التنقل بين الصفحات في أي موقع إلكتروني من خلال القوائم التي يتضمنها، لذلك عليك الانتباه على أن الصفحات لا تُنشَر تلقائيًا ضمن القوائم، وإنما عليك إضافتها بنفسك، فإذا أردت لصفحة "من نحن" الجديدة أن تظهر ضمن الترويسة مثلًا، فيجب عليك التوجه إلى المظهر ثم قوائم (1)، ثم ابحث عن الصفحة الجديدة ضمن صندوق الصفحات (2)، واختر المربع بجانب الصفحة التي تريد إضافتها، بعدها اضغط على أضف للقائمة (3)، وبهذا ستظهر لك الآن الصفحة التي أضفتها ضمن قسم تركيبة القائمة. هناك طريقة أخرى لإضافة صفحة جديدة، وذلك من خلال تفعيل خيار إضافة الصفحات التلقائية (4) الذي سيحدّث قائمتك تلقائيًا عند نشر صفحات جديدة، ولكن كن حذرًا عند استخدام هذا الخيار لأنه قد يُسبب أحيانًا مشاكلًا في التصميم. ألقِ نظرةً على تعديلاتك وتأكد من كل شيء، ثم اضغط على حفظ القائمة (5). عليك الانتباه على أن قائمة ووردبريس لا تحفظ الإضافات والتعديلات التي نفذتها تلقائيًا، بحيث ستفقد الخطوات السابقة إن غادرت صفحة القوائم من دون الضغط على خيار حفظ القائمة. التحرير والتحرير السريع لا تحتاج الصفحات تعديلات كبيرةً وجذرية، ولكن من الجيد مراجعة محتواها دوريًا لتحديث المعلومات البسيطة مثل العنوان أو غيرها، لذلك يوفر ووردبريس آليةً سريعةً وسهلةً للتعديل من خلال خيار تحرير سريع الذي يظهر ضمن مجموعة خيارات في نافذة ** كل الصفحات** عند مرور مؤشر الفأرة فوق عنوان الصفحة. ستظهر معلومات الصفحة على مساحة أوسع بعد الضغط على تحرير سريع، لتتمكن من تعديل الرابط الدائم للصفحة وتاريخ النشر والقالب المستخدم، وكذا حالة النشر وغيرها؛ أما محتوى الصفحة فلا تستطيع تعديله بهذا الخيار، ولكنك تستطيع بسهولة حذف الصفحة ذات المحتوى القديم أو المعلومات غير الصحيحة. لا تنسى الضغط على تحديث (6) لحفظ التعديلات السابقة، وللوصول للمحرر الافتراضي؛ اضغط على تحرير (7) وتعديل ما تشاء كما شُرح سابقًا. إذا استخدمت باني صفحات، فسيظهر لك خيار تعديل المحتوى باستخدام ذلك الباني مباشرةً بدلًا من المحرر الافتراضي لووردبريس. من المهم معرفة أن إدارة صفحات ووردبريس وتعديلها عملية سهلة باستخدام الخيارات السابقة مهما كان عدد الصفحات الموجودة ضمن موقعك. الخلاصة عادةً ما يُشار إلى صفحات ومقالات ووردبريس على أنهما الشيء ذاته، وبالرغم من تشاركهما العديد من الصفات، إلا أن استخدامهما ضمن نظام ووردبريس مختلف تمامًا، حيث تسمح لك الصفحات بعرض محتوى لا يرتبط بالوقت أو محتوى الموقع، بالإضافة لتسليط الضوء على جوانب هامة للموقع أو حتى توفير مساحة مؤقتة للإعلانات والتعليقات، أو حتى العروض الخاصة التي تُعرض لفترات محدودة، وهذا لا يتناسب مع ما تٌقدمه المقالات. ترجمة -وبتصرّف- للمقال WordPress Pages: How to Create and Manage Them لصاحبه B.J. Keeton. اقرأ أيضًا تعرف على مكتبة الوسائط وأقسامها وكيفية عرض الوسائط في موقع ووردبريس إضافة نص مكتوب لمقاطع الفيديو على صفحات والمقالات وإدارتها على ووردبريس كيفية استخدام مكتبة الوسائط في ووردبريس
-
لم يَعُد المحتوى الإلكتروني مقتصرًا على شكلٍ واحدٍ فقط، فقد اختلفت الأنواع بين النصوص والصور والملفات الصوتية ومقاطع الفيديو. وكيلا يكون موقعك الإلكتروني رتيبًا؛ فستحتاج للتعامل مع جميع هذه الأنواع، وووردبريس على أساس منصة قوية يوفّر لك هذه الفرصة، ويتيح لك إدارة المحتوى المتنوّع باستخدام مكتبة الوسائط المضمنة فيه. سيتضمن محتوى المقال شرح مكتبة وسائط ووردبريس وأين نجدها وأنواع الملفات التي تدعمها إضافةً إلى كيفية رفع هذه الملفات إلى موقعك ثم سننهي المقال بالحديث عن طريقة الاستخدام المُثلى لهذه المكتبة وكيف نستطيع منحها خصائص إضافية باستخدام الإضافات. مكتبة وسائط ووردبريس ومكانها مكتبة وسائط ووردبريس هي مستودع يعرض لك كافة ملفات الوسائط التي رفعتها على موقعك الإلكتروني، وتستطيع الوصول إليها من خلال قسم "وسائط" الموجود في القائمة الجانبية للوحة تحكم ووردبريس. من خلال هذا القسم تستطيع البحث في ملفات الوسائط التي رفعتها، وترتيب محتواها حسب نوع الملفات وتاريخ الرفع، بالإضافة لرفع ملفات جديدة من حاسوبك للمكتبة بسهولة، بالضغط على "أضف جديد" ليظهر لك قسم جديد ضمن النافذة لرفع الملفات. لإضافة ملفات الوسائط أثناء إنشاء منشور أو صفحة جديدة ستستخدم المحرر النصي، ومن خلاله أيضًا تستطيع رفع ملفات الوسائط لووردبريس. وإن رفعتَ الصور على مكتبة الوسائط، فستكون قادرًا على الوصول لها عبر المحرر بالضغط على خيار "مكتبة الوسائط" عند إضافة صورة أو مجموعة صور أو مقطع فيديو أو ملف صوتي عبر العناصر الخاصة بها. كيفية تعديل ملفات الوسائط وإضافة ملفات وصفية Meta Data في ووردبريس لا تقتصر وظيفة هذه المكتبة على عرض الملفات فقط، وإنما تتيح تعديلها كلٌ على حِدة أو دفعةً واحدةً، وفيما يلي شرح كيفية التعديل: تعديل تفاصيل الصورة عند الضغط على أي ملف في مكتبة وسائط ووردبريس ستظهر لك نافذة جديدة تستطيع من خلالها الاطلاع على تفاصيله والتي تتضمن: تاريخ الرفع والحساب الذي رُفع عبره الملف، واسمه، ونوعه، وحجمه، وأبعاده. خيار تحرير الصورة. البيانات الوصفية للصورة. هناك عِدّة خيارات أساسية لتحرير ملفات الصور، تصلها عبر الضغط على خيار "تحرير" وهي: تدوير الصورة أو قلبها أو قصها باستخدام أدوات سهلة. تغيير مقاسات الصورة بإدخالها يدويًا. قص الصورة يدويًا بإدخال الأبعاد الدقيقة أو نِسبة القص. تستطيع تطبيق التغييرات على جميع الأحجام المتوفرة للصورة أو على الحجم الذي تعمل عليه فقط. توفّر منصة ووردبريس أحجامًا مختلفةً للصورة نفسها، بحيث يمكنك اختيار الحجم الذي تريده عند رفعك للصورة، كما تستطيع أيضًا معاينة التغييرات ضمن النافذة على يمين الصفحة ثم حفظ الملفات بالضغط على "حفظ". تُعَد التعديلات التي تتيحها أدوات ووردبريس بسيطة، فإذا أردت تعديلات أعمق يجب استخدام برامج خاصة خارج ووردبريس. إضافة بيانات وصفية للصورة توجه لصفحة عرض تفاصيل الصورة لإضافة أو تعديل البيانات الوصفية Meta Data لها، والتي تتضمن: النص البديل: وصف قصير للصورة يُساعد محركات البحث على فهم محتوى الصورة ويظهر للزوّار عند تعذّر تحميل الصورة مثل بديل لها. العنوان: يُعَد سمةً هامةً جدًا لتحسين محركات البحث (سيو) يشرح ماهية الصورة، ويُعرض العنوان عند مرور مؤشر الفأرة فوق الصورة في بعض المتصفحات. كلمات توضيحية: يظهر هذا النص عادة أسفل الصورة ليوضح محتواها أو ما ترمز له. الوصف: يظهر عند دخول الزوار لرابط الملف المرفق أو الصفحة الخاصة به وتستطيع استخدامه لتضمين تفاصيل أكثر عن كل صورة. توضح الصورة أدناه كيف تظهر الحقول السابقة ضمن صفحة تفاصيل الصورة: يجب عليك الانتباه جيدًا لحقل عنوان الصورة وحقل النص البديل، فهما من أهم البيانات الوصفية من وجهة نظر تحسين محركات البحث (سيو)؛ أما بالنسبة للكلمات التوضيحية والوصف، فتستطيع الاختيار بين كتابتها من عدمه وذلك حسب طبيعة موقعك وتصميمه. ما هي أنواع الملفات التي تدعمها مكتبة وسائط ووردبريس؟ تدعم مكتبة وسائط ووردبريس العديد من الملفات غير الصور، ولو أن المقال لم يَذكر للآن إلّا ملفات الصور. فيما يلي تجد تقسيم لأنواع الملفات المدعومة من قبل مكتبة وسائط ووردبريس: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } الصور المستندات الصوتيات الفيديو Jpg mp3 Pdf mp4 jpeg m4a doc mov png ogg ppt wmv gif wav odt avi ico xls mpg psd ogv 3gp 3g2 بعدها ستظهر لك رسالة تعذّر الرفع إن حاولت رفع ملف غير مدعوم من قبل ووردبريس. ظهرت الصورة أعلاه عند رفع ملف بصيغة webp وهي صيغة غير مدعومة من قبل ووردبريس. يوفّر ووردبريس ميزات تعديل حصرية لملفات الصور، أما ملفات الصوت ومقاطع الفيديو فتستطيع تشغيلها فقط. كما أن ميزة المعاينة لا تدعم ملفات الوثائق وفي حال رفعت ملف PDF (أو أي ملف مشابه)، سوف ترى أيقونةً فقط عند فتح نافذة تفاصيل الملف. لا تستطيع إرفاق وثائق ضمن صفحات أو منشورات ووردبريس حتى إن كان نوع الملفات مدعومًا من ووردبريس. فإن أردت إضافة ملف PDF لمنشور على سبيل المثال، فستحتاج لاستخدام عنصر الملف وحتى عند استخدامه، فإن ووردبريس سوف يعرض فقط عنوان الملف بجانب زر التنزيل. أفضل 3 طرق لإدارة مكتبة وسائط ووردبريس عملية رفع ملفات الوسائط لووردبريس وتضمينها داخل الصفحات والمنشورات عمليةً بسيطة، ولكن هناك بعض الاعتبارات لضمان سهولة التفاعل معها وتحقيق قيم تحسينات محركات البحث seo. 1. إضافة عناوين ونصوص بديلة لوصف ملفات الوسائط لتسهيل الأمر على المستخدمين، يجب أن يمتلك كل ملف وسائط عنوانًا ونصًا بديلًا مفهومًا، فبدلًا من رفع ملف يُدعى 12341241.png مثلًأ، عليك إعادة تسميته باسم مثل "man-window.png" قبل رفع الصورة، وتستطيع إضافة النص البديل حالما ترفع الصورة لمكتبة الوسائط. 2. تحسين الصور وضغطها ارفاقك للصور ضمن المقال بدقة عالية ومذهلة تجعل المقال جذابًا، ولكن الجانب المظلم لها أنها تُبطئ الموقع بسبب الأحجام الكبيرة للملفات، لذلك يُنصح بضغط الصور للحفاظ على جودتها وتقليل حجمها، ويوجد طريقتين لفعل ذلك، الأولى باستخدام طرف ثالث مثل موقع TinyPNG. يُنصح بعدم رفع ملفات ذات دقة عالية لووردبريس بل إعادة ضبط حجم الصورة بدقة كافية للقارئ ثم تخفيض حجم الملفات بعد اتباع الخطوتين السابقتين. 3. استخدام الإضافات لإضافة المزيد من الوظائف والميزات لووردبريس تُقدم مكتبة ووردبريس أداءً جيدًا دون أي ميزات إضافية، ولكن لابُد من تطويرها وإضفاء المزيد من المزايا لها، ولتحسين مزايا مكتبة وسائط ووردبريس تستطيع استخدام إضافات، مثل: ميزة تصغير الحجم: تُريحُك هذه الميزة من إعادة ضبط حجم الصورة يدويًا، إذ تستطيع تصغير الحجم بدقة عالية وبخطوات بسيطة. نظام التصنيف: لحل مشكلة الوصول لملف وسائط محدد مع نمو موقعك الإلكتروني، وُجِد نظام التصنيف (مثل التصنيفات والوسوم)، لتستطيع البحث عن الملف الذي تريده ضمن تصنيف واحد بدلًا من البحث بين جميع ملفات الموقع. خيار تغيير أسماء ملفات الوسائط بصورة جماعية: تستطيع استبدال جميع أسماء الملفات باستخدام الأداة المناسبة. الخلاصة مكتبة ووردبريس أداة بسيطة ذات كفاءة عالية، تخدم زوار الموقع من جهة وتخدمك أنت بصفتك صاحب الموقع من جهة أخرى، بحيث تزيد من جودة المحتوى مما يريح الزائر ويزيد متعته في تصفح موقعك من خلال رفع الصور، وملفات الصوت، ومقاطع الفيديو؛ كما تسمح لك بتصفح الملفات بناءً على تاريخ الرفع أو النوع وتعديل الصور وغيرها. ولتحسين تجربة المستخدم والحصول على فائدة أكبر من مكتبة وسائط ووردبريس، إليك بعض الملاحظات: أضف عنوانًا مُفصّلًا ونصًا بديلًا لكل صورة. حسّن من جودة الصور قبل رفعها. استخدم الإضافات لإعطاء مكتبة ووردبريس المزيد من المرونة. ترجمة وتصرّف في المقال How to Use the WordPress Media Library لصاحبه Will Morris.
-
نعيش اليوم مرحلةً متقدمةً من تداخل التقنية في حياتنا، حيث باتت تفرض علينا أساليبًا وسلوكيات لاتباعها في أنشطتنا اليومية، فأصبحنا نقضي الساعات في مشاهدة الفيديوهات بأي منصة كانت، وذلك له أسبابه التي تُلخص بسهولة متابعة المحتوى المرئي والمسموع، ومناسبته لنمط الحياة السريع الذي نعيشه. عند الحديث عن الفيديوهات الى جانب المقالات، فلا يمكن تجاهل سبب أساسي لتدعيم المقالات بفيديوهات، وهو تفضيل جوجل للمقالات والصفحات المُضمّنة لمقاطع الفيديوومع أخذ ظروف القارئ المحيطة بالحسبان، فلا نستطيع الاعتماد على المقالات وحدها أو الفيديوهات وحدها، وستمر حالات على القارئ لا يستطيع بها مشاهدة الفيديو لأي سبب كان، وآخر سيفضل مشاهدة الفيديو على قراءة مقال ولو كان ذو ٥٠٠ كلمة. جميع ما ذُكِر أعلاه، يُعَد شرحًا لأهمية النص المكتوب مع مقطع الفيديو، وعليه سنشرح كيفية الاستفادة من يوتيوب لتوليد نص مكتوب لمقاطع الفيديو، تم نشره في منصة ووردبريس. كيفية إضافة نص مكتوب لمقاطع الفيديو ضمن ووردبريس الطريقة الأكثر شيوعًا من قِبَل صانعي المحتوى للحصول على نص مكتوب لمحتوى الفيديو هي أخذه عن طريق يوتيوب لأنه يضيف النص تلقائيًا للمقاطع المنشورة عليه بأقل تكلفة وأقصر مدة. تظل هذه الطريقة هي الخيار الأول لسهولتها وقلة كلفتها، إلّا أن لها جانبًا سلبيًا. ففي حال كان الفيديو لشخص يتحدث بسرعة أو يستخدم لهجةً أو مصطلحات مهنية، فستكون دقة النص منخفضة، وعليه يتطلّب منك مراجعة النَص وتعديله. استوديو يوتيوب توجه إلى موقع يوتيوب واضغط على أيقونة ملفك الشخصي الموجودة في الزاوية العلوية اليسرى ثم ستظهر لك قائمة تتضمن خيار Youtube استوديو، حيث سيُعاد توجيهك إلى لوحة التحكم لمقاطع الفيديو الخاصة بك عند النقر عليه. والآن، انظر للقائمة الموجودة على يمين الشاشة واضغط خيار الترجمة؛ تستطيع العثور على هذا الخيار أيضًا ضمن أي مقطع فيديو وذلك بالضغط على خيار التعديل ولكن هذه الطريقة أسهل وأسرع. باتباع الطريقة السابقة قد تأخذ بعض الوقت في البحث عن مقطع الفيديو المطلوب -إذا افترضنا أن قناتك تحتوي عددًا كبيرًا من المقاطع-، لذلك تستطيع الوصول للمقطع المطلوب باستخدام خيارات البحث، ثم ضع مؤشر الفأرة فوق المُدخل الخاص به ضمن القائمة لتظهر أيقونة عبارة عن 3 نقاط فوق بعضها، واضغط عليها لتظهر لك أيقونة القلم لفتح صفحة لترجمة مقاطع الفيديو على يوتيوب. ترجمة مقاطع الفيديو ستجد أيقونةً من 3 نقاط في أقصى اليسار، اضغط عليها لتظهر لك قائمة منسدلة، اضغط على تنزيل. تستطيع الآن تنزيل ملفات الترجمة كما هي بصيغة vtt. أو srt. أو sbv. وهذه هي الصيغ المعتمدة لملفات وبرامج الترجمة، كما تستطيع فتح هذه الملفات باستخدام أي محرر نصي مثل Sublime Text أو VS Code، وكذا تعديل هذه الملفات واستخدامها لإضافة نص الفيديو لمنشورك على ووردبريس ولكن لا يُنصح بذلك. يُكتب محتوى ملفات الترجمة بلغة مخصصة للآلة وليس للإنسان، وهذا الأمر يجعل نسخها مباشرةً لموقعك أمرًا لا طائل منه. يُمكن تعديل الملف يدويًا ليُصبح مقروءًا ولكن إذا كان مقطع الفيديو طويل ويتضمن الكثير من الكلام، فسيكون ذلك أمرًا مستحيلًا. ولحل هذه المشكلة والحصول على نص مكتوب ومقروء لمقطع فيديو على يوتيوب، فعليك الضغط على "إنشاء نسخة طبق الأصل وتعديلها". ستظهر لك واجهة مليئة بالأزرار والخيارات، ولكن عليك الانتباه لصندوق النص الموجود على اليمين. حيث يُستخدم النص الموجود في هذا الصندوق لإضافة نص مكتوب لمقطع فيديو على ووردبريس، ولكن انتبه فقد يكون حجم النص ضخمًا. هذا النص مقسّم لمقاطع زمنية حسب زمن ورودها ضمن مقطع الفيديو، اضغط على صندوق النص وانسخ النص كاملًا. إضافة نص الفيديو إلى ووردبريس هذه العملية سهلة جدًا، حيث ستحتاج لصفحة أو مقال جديد، أو تستطيع التعديل على صفحة أو مقال موجود سابقًا. إن كنت تستخدم محرر Gutenberg الافتراضي فاضغط على أي مُكوّن والصق النص الذي نسخته. ستلاحظ أن النص مقسم إلى مقاطع حسب التقسيم الزمني ليوتيوب. تعديل نص الفيديو بعد الحصول على النَص المكتوب والمقروء، ستحتاج لتعديل النص وتصويب بعض الأخطاء فيه، وقد يستغرق الأمر بعض الوقت حسب طول المقطع، ولكنها الخطوة الأخيرة في هذه العملية، ومع ذلك يظل وقتًا قليلًا موازنةً بالوقت المطلوب لتنفيذ هذه العملية يدويًا من الصفر. تذكّر أن استخدام أدوات مثل المحرر النصي Sublime Text أو إضافة كروم Search and Replace، توفر عليك الكثير من الوقت في عملية تعديل النص، حيث تستطيع مثلًا باستخدام ميزة البحث في المحرر النصي إيجاد خطأ متكرر ضمن النص واستبداله بالنص الصحيح. بعد أن يصبح النَص جاهزًا للنشر، تستطيع نشر المقال مع إضافة النص له في ووردبريس، وهي عملية سهلة للغاية باستخدام محرر ووردبريس ومكوناته التي يوفرها لدعم يوتيوب. إضافة ترجمة جديدة ليوتيوب (خياري) وكي لا تكون المستفيد الوحيد من ترجمة النص وتعديله وإصلاحه، تستطيع رفعه من جديد على يوتيوب لنفس مقطع الفيديو لاعتماد النسخة المُحسَنة، وذلك عن طريق التوجه إلى وحدة النسخ والتعديل التي استخدمناها لنسخ النص، بعدها ألصق النص الجديد في الصندوق لتستبدل النص الذي أنشأه يوتيوب بالنص المُنقّح من قبلك، ثم اضغط على نشر. في الصورة التالية يظهر الفيديو ذو النص المعدّل في الأعلى مع الإشارة لمُنشئ المحتوى والتنبيه على أنها ليست الترجمة التلقائية ليوتيوب. تستطيع الآن عرض النصوص المُنقحة على مقاطع الفيديو الخاصة بك والاستفادة منها بنفس الوقت على موقعك الإلكتروني للوصول لجميع المستخدمين على اختلاف ظروفهم. كيفية إنشاء وإدارة منشورات ووردبريس يُمثّل ووردبريس نظامًا لإدارة محتوى مُتكامل والميزة الأساسية له هي إنشاء المنشورات، إنشاء منشورات قد يكون للمدونة أو لمنتجات ووكومرس، حتى يمكن للمنشور أن يكون تقويمًا أو مَعرَضًا للأعمال أو منتدى مناقشة أو منشورًا مُخصصًا لعرض سيارة أو عقار، ونحن هنا نقدّم المساعدة لإنشاء وإدارة منشوراتك في ووردبريس للحصول على أفضل نتيجة ممكنة. تُعَد المنشورات العماد الأساسي الذي يقوم عليه نظام إدارة محتوى ووردبريس وهذا لا يُقلل من أهمية الإضافات أو الودجات أو القوالب أو الخطافات أو APIs ولكن كل ما سبق قائم على منشورات ووردبريس، ويُعرف توثيق ووردبريس الرسمي المنشورات كالتالي: المنشورات هي الطريقة الرئيسية إلى جانب الصفحات -التي تُشبهها ولكن تُستخدم بطريقة مختلفة تمامًا- للتفاعل المباشر بين مديري الموقع والزوار على الموقع الإلكتروني، نشر صورة لغدائك الشهي والوصفة الخاصة به هو منشور وكتابة مقال تعليمي لكيفية استخدام مقالات ووردبريس هو منشور أيضًا، وأهم مهارة يمكنك إتقانها للعمل على ووردبريس هي كيفية استخدام المنشورات. إنشاء منشورات ووردبريس ألقِ نظرةً على لوحة تحكم ووردبريس وابحث عن المقالات حيث يشير الرقم (1) في القائمة الجانبية على اليمين ثم اضغط على أضف جديدًا حيث الرقم (2) بالصورة، سواءً من الخيار الموجود في القائمة أو الموجود في أعلى النافذة. ستنتقل بعدها لمحرر ووردبريس الافتراضي Gutenberg وهو محرر ووردبريس الجديد، تستطيع استخدام إضافة محرر ووردبريس التقليدي لتختلف تجربتك من الناحية البصرية بينما تبقى الخطوات ذاتها. استخدام المحرر الافتراضي لووردبريس سهل جدًا فعليك إضافة العنوان مكان عبارة إضافة عنوان حيث يشير الرقم (3)، سيُنشئ ووردبريس بعدها رابطًا دائمًا للمنشور، ويُضيف عنصرًا نصيًا يتضمن عبارة "ابدأ بالكتابة أو اكتب / لاختيار مكوّن" لتبدأ بإضافة محتواك على الفور. بعد كتابة النص الذي تريده تستطيع نشر المنشور بدون أي عناصر إضافية على ما سبق وذلك بالضغط على نشر، وهذا كل ما عليك فعله لإنشاء منشور على ووردبريس، لكن بالطبع لن تتوقف هنا، بل عليك إضافة زيادات مثل البيانات الوصفية والصورة البارزة والتصنيفات والوسوم، فهذه الأمور تُساعد منشورك لأخذ طابع أكثر احترافية. الرابط الدائم للمنشور هو الرابط الذي يتمكن الزائر عبره من الوصول للمنشور ويظهر في خانة عنوان المتصفح، تستطيع تعديل هذا الرابط كما تشاء ويُفضل اشتقاقه من عنوان المنشور، ويُساعد اختيار التصنيفات المناسبة زوارك على التنقل ضمن موقعك والعثور على محتوى مفيد لهم، كما يُساعد محركات البحث والعناكب الخاصة بها على معرفة هيكلية ترتيب منشوراتك ضمن الموقع. تُشبه الوسوم إلى حد كبير التصنيفات حيث توفر طريقةً مختلفةً لترتيب المحتوى وفصله عن بعضه ولكنها أكثر تحديدًا من التصنيف فمثلًا "المقالات التقنية" تكون التصنيف و"مقالات ووردبريس" هي وسم يتضمن جزءًا صغيرًا مما يحتويه التصنيف وهذا يُساعد الزائر ومحركات البحث على اكتشاف موقعك بدقة أكبر. تستخدم العديد من القوالب والإضافات الصورة البارزة لعرض المنشورات وهي غالبًا ما يظهر للقارئ عند مشاركة المنشور على شبكات التواصل الاجتماعي. إدارة منشورات ووردبريس عندما يزيد عدد منشوراتك في موقعك، ستحتاج لمتابعتها وإدارتها وتغيير بعض التفاصيل فيها مع مرور الوقت، ولمعرفة الخيارات المتاحة في عملية الإدارة والمتابعة، مرّر مؤشر الفأرة فوق أي مدخل ضمن نافذة كل المقالات (1) في لوحة التحكم لتظهر لك مجموعة من الخيارات (2). اضغط على تحرير سريع (2) لتظهر لك تفاصيل المنشور (3) التي لا علاقة لها بالمحتوى وتستطيع تعديلها بحرية مطلقة، يسمح لك التحرير السريع تعديل العنوان والرابط الدائم وتاريخ النشر والتصنيفات والوسوم وحالة النشر أما التفاصيل المنشأة عبر المحرر الافتراضي كالمحتوى المكتوب والصورة البارزة فلا يُمكن تغييرها إلا عبره من خلال الضغط على تحرير (2). إدارة الوسوم والتصنيفات تستطيع إنشاء الوسوم مباشرةً عند كتابتك للمنشور ضمن الحقل الخاص بها في محرر ووردبريس الافتراضي أو باستخدام خيار تحرير سريع أما لو أردت إنشاءها قبل كتابة المنشور توجه إلى مقالات ثم وسوم، ومن هنا تستطيع الاستفادة من ميزة التحكم الدقيق لأي وسم على موقعك الإلكتروني. قليل ما يُستخدم وصف الوسم، لذلك لك حرية تخطي إضافته أو كتابة وصف بسيط يشرح محتوى الوسم، ويُشير عمود العدد لعدد المنشورات التي استُخدم بها الوسم في الموقع وعند الضغط عليه تنتقل لصفحة تظهر قائمة هذه المنشورات. توجه إلى صفحة التصنيفات عبر مقالات ثم تصنيفات (6) لتجد صفحة شبيهة بصفحة الوسوم تختلف عنها بتفصيل صغير هو التصنيف الأب حيث يُمكن لتصنيف ما امتلاك تصنيفات فرعية تابعة له، والتشابه بين الوسوم والتصنيفات أمر طبيعي فهما جزء رئيسي من الهيكلية التنظيمية لمحتوى ووردبريس. تسمح لك القائمة المنسدلة التصنيف الأب (7) باختيار تصنيف رئيسي يُضاف له تصنيفات فرعية، وهذا أمر مفيد جدًا عند تشعّب وتداخل المجالات التي تنشرها، ويُساعد أيضًا على تنظيم المحتوى فمثلًا إن كان موقعك مُختصًا بالمواضيع التقنية ويتضمن أجهزة ذكية كتصنيف أب فمن المفيد امتلاك تصنيفات فرعية له مثل ساعات ذكية وهواتف ذكية ومساعد شخصي لتُساعد القارئ على الوصول للمحتوى المطلوب بسرعة وسهولة. الخلاصة تُعَد منشورات ووردبريس هي الغاية الأساسية من استخدام نظام إدارة محتوى، ويمكنك الانطلاق بموقعك بقوة حالما تتعرف على مميزات منشورات ووردبريس، وستجد عملية إدارة المنشورات بسيطة ولكنها تزيد تعقيدًا كلما زادت عدد المنشورات في موقعك، لذلك يُساعد وجود هيكلية مدروسة للوسوم والتصنيفات على تنظيم إدارة هذه المنشورات، إضافةً إلى الاستفادة من خيار تحرير سريع في الأماكن الصحيحة حيث يوفر عليك الكثير من الوقت الضائع عند تحميل محرر ووردبريس الافتراضي لتعديل تفاصيل مثل العنوان وتاريخ النشر مثلًا. ترجمة -وبتصرّف- للمقالين: How to Add Video Transcripts to WordPress Posts or Pages لصاحبه B.J. Keeton، وWordPress Posts: How to Create and Manage Them لصاحبه B.J. Keeton. اقرأ أيضًا إدارة عملية الاختبار في الووردبريس مميزات نظام إدارة المحتوى ووردبريس مدخل إلى التدوين ونشر المدونات وما يتعلق بها عبر منصة ووردبريس
-
تشكِّل المرونة السبب الرئيس لجعل منصة ووردبريس مرغوبةً ومُستخدمةً لدى شريحة واسعة من التقنيين، وتتجلّى مرونة المنصة بودجات ووردبريس التي تسمح بتكييف وتفصيل الموقع حسب طلباتك بسهولة وفاعلية. وللاستفادة المُثلى من هذه الخاصية، يتوجب على المُستخدِم فهم آلية عملها بدقة، وتصب فائدتها خصوصا على التذييل Footer والشريط الجانبي للموقع دون اللجوء لأي شيفرة برمجية. لذلك سنقدم معلومات كافية ووافية حول ودجات ووردبريس تساعدك في تطوير موقعك بكفاءة عالية. مقدمة حول ودجات ووردبريس الودجات هي عناصر ومكونات مبرمجة مسبقًا تُستخدم لعرض محتوى -سواء كان نصًا أو رابطًا أو صورًا أو مزيجًا مما سبق- على صفحة موقعك في ووردبريس ضمن التذييل أو الشريط الجانبي، ولكونها لا تحتاج كتابة شيفرات برمجية تُعَد سهلة ومفيدة للمبتدئين على وجه الخصوص، بأداء يُعادِل الشيفرات البرمجية المكتوبة يدويًا. ومن أهم ميزاتها أنها لا تأخذ قسمًا رئيسًا من الصفحة فتستطيع من خلالها عرض حالة الطقس أو التنويه لموقع ما على الخريطة أو عرض قائمة تُسهل على المُستخدمين الوصول لأجزاء مختلفة في الموقع. قد تتشابه لدينا المفاهيم بين القالب والودجات، وتوضيحًا للفرق فإن القالب يسمح لك بتغيير تصميم الموقع كاملًا مع إضافة العديد من الميزات والوظائف المتكاملة، أما الودجات فتسمح لك بإضافة خصائص محددة والتحكم بها في أجزاء محددة من صفحة ووردبريس. يُقدم ووردبريس العديد من الخيارات المتنوعة مُسبقًا: تستطيع استخدام الودجات لكل شيء ابتداءً من عرض مربع للبحث وانتهاءً بسرد آخِر التعليقات أو المقالات ضمن الموقع. وإلى جانب وجود طرق لإنشاء ودجات خاصة بك واستخدامها بالإضافة للودجات التي يتضمنها ووردبريس عند تثبيته، تتضمن الإضافات والقوالب ودجات خاصة بها أيضًا، حيث تسمح لك إضافة MetaSlider مثلا بإضافة صور أشرطة التمرير للمساحة الخاصة بالودجات: تستطيع إيجاد ودجات لما تريده مهما كان، من خلال استخدام قالب أو إضافة أو حتى استيراد ودجات بحد ذاتها. أين تستطيع عرض ودجات ووردبريس؟ عادًة ما تتواجد الودجات في موقع ووردبريس في مكانين على الصفحة؛ وهما التذييل والشريط الجانبي، وهذا لا يعني عدم تواجدها في أماكن أخرى، إذ تُحدد أمكنة تواجد الودجات من قبل القالب المُستخدم، فبعضها يوفر عدّة أقسام جانبية للصفحة، وبعضها الآخر يسمح لك بإضافة ودجات في أماكن متنوعة مثل ترويسة الموقع. وفي الصورة الآتية مثالٌ لاستخدام الودجات في الشريط الجانبي للصفحة (1) والتذييل (2): تستطيع عرض الودجات على صفحات محددة في الموقع أو على جميع الصفحات، قد ترغب مثلًا في عرض ودجت مربع البحث في كل الصفحات، وعرض ودجت أحدث المقالات في صفحة المدونة فقط. كيفية عرض ودجات ووردبريس قبل البدء بعملية إضافة الودجات، عليك الاطلاع على المساحات المناسبة في موقعك لاستخدام الودجات بمكانها الصحيح. إضافة ودجات من لوحة تحكم ووردبريس توجَّه إلى خانة "المظهر" ضمن القائمة الجانبية للوحة التحكم في ووردبريس، ثم اضغط على تبويب "ودجات" لتصل للنافذة التي تسمح لك بإضافة الودجات لموقعك ضمن الأماكن المخصصة لها. في حال استخدامك لقالب Twenty Twenty-One-وهو أحدث قالب افتراضي لووردبريس-, فستجد مساحةً واحدةً فقط مخصصة للودجات: أما في حال استخدام قالب آخر مثل قالب Divi، فستحصل على خيارات عِدة لاستخدام الودجات فيها بما في ذلك الشريط الجانبي للصفحة وأقسام التذييل. تستطيع أيضًا إنشاء مساحة جديدة للودجات لتستخدمها ضمن الشريط الجانبي للصفحة. عند اختيارك للودجت المناسبة ضمن الخيارات المتوفرة، فكل ما عليك هو سحبها من مكانها وإفلاتها في المكان الذي تريد وضعها فيه، فإذا أردت مثلًا إضافة ودجت للقسم الجانبي فعليك إفلاته ضمن المساحة البيضاء بعنوان مناسب للودجت، ولاحظ ضمن الصورة استخدام ودجت أحدث التعليقات وودجت أحدث المقالات ضمن الشريط الجانبي؛ أو يُمكنك ببساطة الضغط على الودجت واختيار المساحة التي تريد عرض الودجت ضمنها، ثم الضغط على المساحة المختارة: هناك طريقتين لعرض الودجات، إما من خلال تبويب "ودجات" ضمن قسم "المظهر"، وإما من خلال تبويب "تخصيص" ضمن قسم "المظهر" في لوحة التحكم في ووردبريس. في الغالب ستجد قسمًا خاصًا بالودجات: ثم عليك اختيار المساحة التي تريد إضافة ودجت لها من الخيارات المتوفرة وبعدها الضغط على خيار "أضف ودجت": عليك الآن اختيار ودجت من الخيارات المتوفرة: عنوان الودجت سيكون مرئيًا لزوار الموقع، لذا يفضل التأني باختياره. اضغط على "نشر" عند الانتهاء من التعديلات وتوجه إلى موقعك لمعاينة الودجت التي أضفتها. تستطيع تكرار هذه الخطوات قدر ما تشاء لإضافة الودجات المطلوبة لأي من المساحات المخصصة للودجات ضمن موقعك. كيفية تعطيل ودجات ووردبريس من مرونة العمل على الودجات قابليتها للحذف بخطوات بسيطة بعد رؤيتها غير مناسبة للموقع،حيث تُعطًّل الودجات من خلال تبويب "ودجات" ضمن قسم "المظهر"، ثم التوجه لمساحة عرض الودجت المطلوب والضغط على السهم الصغير بجانب عنوان الودجت لإظهار خياراته، والضغط على خيار "حذف". تستطيع اتباع نفس الآلية من خلال نافذة التخصيص. اضغط على "تخصيص" ضمن قسم "المظهر"، ثم اضغط على ودجات واختر الودجت التي تريد حذفها بالضغط عليها، ثم اضغط على "حذف". احرص على الضغط على "نشر" في أعلى النافذة لحفظ التغييرات. إلغاء تنشيط الودجت ميزة أخرى تضاف للتعامل مع الودجات، وهي قدرتك على إلغاء فاعليتها وظهورها مع الاحتفاظ بإعداداتها، دون إضاعة الوقت على إعادة ضبطها مجددًا. في هذه الحالة تستطيع إلغاء تنشيط الودجت من خلال التوجه لتبويب "ودجات" ضمن قسم "المظهر" في لوحة التحكم في ووردبريس، ومن ثم سحب الودجت وإفلاتها ضمن قسم "ودجات غير فعالة". إضافةً إلى ذلك تستطيع إعادة استخدام هذه الودجات بعد تعطيلها، وذلك من خلال سحب الودجت المطلوبة وإفلاتها ضمن المكان الذي تريد عرضها فيه. أما إذا كنت تريد حذفها نهائيًا، فعليك الضغط على خيار "مسح الودجات غير النشطة". لتلخيص ما سبق يوجد 3 حالات للودجت الأولى هي "ودجات متوفرة" والتي تستطيع استخدامها ضمن المساحات المُخصصة، وعند نقلها لأي من هذه المساحات تُصبح "ودجت نشطة أو فعّالة"؛ أما الحالة الثانية، فعند الضغط على خيار "حذف" تختفي الودجت من المساحة الموجودة ضمنها ولكنها تبقى متوفرةً للاستخدام في أي وقت مع الحاجة لضبطها من جديد؛ بينما عند نقلها من مكانها إلى قسم "ودجات غير فعالة، فإن الودجت تُصبح غير مرئية لزوار الموقع ولكنها تحتفظ باعداداتها وهذا يُسهل عليك إعادة استخدامها مُستقبلًا. استخدام إضافة لتعطيل الودجات يعمل الخيار الثالث لتعطيل الودجات من خلال استخدام إضافة مخصصة لغرض التعطيل، ويوجد العديد من هذه الإضافات التي تُقدم نفس الخدمة، ولكل إضافة ما يميزها لذلك عليك تحديد ما تريده بدقة لتختار الإضافة الأنسب للمطلوب. وسنسرد هنا أفضل الإضافات المُصممة لهذا الغرض. إضافة Widget Disable تستطيع استخدام هذه الإضافة إذا أردت تعطيل ودجت واحدة أو مجموعة ودجات مجانًا وبسهولة. توجه إلى تبويب "Disable Widget" في قسم "المظهر" بعد تثبيت وتفعيل الإضافة. اختر الودجات التي تريد تعطيلها كما في الصورة. اضغط على خيار "حفظ التغييرات" لتعطيل الودجات التي اخترتها. تسمح هذه الإضافة بتعطيل الودجات ولكنها ليست الإضافة المناسبة إذا أردت تعطيل الودجات مؤقتا، فإن كنت تُخطط لإعادة استخدام الودجات في وقت قريب، سيكون هناك خيار أفضل ضمن الإضافات المتاحة. إضافة Widget Options هذه الإضافة مجانية أيضًا، تُساعدك في التحكم بودجات ووردبريس وتخصيصها حيث تسمح Widget Options بتعطيل الودجات على كامل الموقع أو تعطيلها في صفحات محددة من الموقع. توجه إلى "Widget Options" في قسم "الإعدادات" بعد تثبيت وتفعيل الإضافة. تَحقّق في الصفحة التالية من أن إعدادات Page Visibility وDevice Restriction مُفعلة. ثم تستطيع التوجه لنافذة التحكم بالودجات والاطلاع على خيارات التخصيص المتنوعة. تستطيع بسهولة اختيار الصفحات التي تريد إخفاء أو عرض ودجت محدد ضمنها لكن لا تنسى الضغط على خيار "حفظ" عند الانتهاء من ضبط الإعدادات. تعطيل الودجات باستخدام PHP يتطلّب استخدام طريقة تعطيل الودجات هذه خبرةً برمجية، لأنها تستوجب تعديل شيفرة الموقع البرمجية يدويًا، فإذا توافرت الخبرة اللازمة ولا تريد إثقال الموقع بإضافة جديدة؛ فهذا هو الخيار المناسب، وستتوجه أولًا لملف functions.php (يُنصح باستخدام قالب ابن)، بعدها أضف شيفرةً برمجيةً مماثلةً للشيفرة التالية للملف المذكور سابقًا لتعطيل ودجت محدد في ووردبريس. فإن أردت تعطيل ودجت التقويم مثلًا، فعليك إضافة: function unregister_default_wp_widgets() { unregister_widget('WP_Widget_Calendar'); } add_action('widgets_init', 'unregister_default_wp_widgets'); احفظ الملف بعد الانتهاء مما سبق ولتتأكد من عمله توجه إلى موقعك، ستكون قد اختفت وإذا أردت تفعيلها مرة أخرى عليك حذف شيفرة التعطيل المضافة وحفظ الملف بعد ذلك. كيفية تصدير واستيراد ودجات ووردبريس عند انشائك لموقعٍ جديد قد تحتاج استخدام نفس الودجات التي أنشأتها في موقعك السابق، ولسهولة التعامل مع الودجات، فإن خيار تصدير واستيراد الودجات متاح، عن طريق استخدام إضافة لهذا الغرض ويُنصح بإضافة Widget Importer & Exporter توجه بداية إلى قسم "أدوات" ثم "Widget Importer & Exporter". ستجد خيارين في هذه النافذة هما "استيراد ودجات" و "تصدير ودجات". سينشأ عن الإضافة ملف .wie الذي يتضمن خيار "تصدير ودجات" الودجات النشطة في موقعك، أي المستخدمة ضمن أحد المساحات المخصصة للودجات، مثل: التذييل، والشريط الجانبي. وهذا يعني أنها تحفظ الودجات النشطة فقط، أما الملف فتستطيع تنزيله وعرضه باستخدام أي محرر شيفرات برمجية. بعد تنزيل الملف، ستستطيع استيراد الودجات لموقع آخر، ولكن أولًا ثبّت وفعّل إضافة Widget Importer & Exporter، ثم توجه لقسم "أدوات" والنقر على تبويب "Widget Importer & exporter" ثم اختر ملف .wie المُحمّل سابقًا وأخيرًا اضغط على "استيراد الودجات". سوف يُعيد ووردبريس توجيهك إلى صفحة نتائج حالما تنتهي عملية الاستيراد ليُعلمك بنجاح العملية. حيث تظهر عِبارة "Widget already exist " بجانب الودجات الموجودة سابقًا. للاطلاع على الودجات عند انتهاء عملية الاستيراد عليك التوجه إلى "ودجات" ضمن قسم "المظهر"، أين ستتمكن من رؤية الودجات الخاصة بك على الموقع الجديد بنفس الترتيب الذي كانت فيه. سوف تظهر لك عبارة توضّح أن الاستخدام غير مفعل، وأن مكان الودجت غير موجود في القالب "(Widget area does not exist in theme (using inactive" ولإعادة استخدامها في المكان الذي ترغب به، تستطيع العثور على هذه الودجات في قسم "ودجات غير فعالة". الخلاصة يُعَد ووردبريس منصةً سهلةً وقويةً في آنٍ واحد. حيث تستطيع من خلاله بناء موقع جميل ذو كفاءة عالية بكل سهولة وسرعة ولتحقيق أفضل أداء عليك معرفة خبايا هذه المنصة واستغلال جميع ميزاته والتي من أهمها الودجات. يوجد العديد من المساحات لعرض الودجات عليها في موقعك منها الشريط الجانبي للصفحات أو التذييل. يُقدم ووردبريس تسهيلات إضافية للمُستخدم ببناء ودجات جاهزة للاستخدام المباشر، كما يتيح أيضًا بناء الودجات الخاصة بك عند استخدامك لقالب مثل Divi والخيارات أمامك، لتعطيل أو إزالة ودجات محددة يدويًا، أو من خلال إضافات أخرى مثل Widget Options. ترجمة -وبتصرّف- للمقال WordPress Widgets: The Complete Guide لصاحبه Will Morris. اقرأ أيضًا التعرف على لوحة التحكم بشاشة الصفحات في ووردبريس التصنيفات والأدوار والصلاحيات في ووردبريس كيفية إنشاء وإدارة صفحات ووردبريس
-
ما هي الإضافات؟ إن إضافات ووردبريس هي عبارة عن شيفرة بي اتش بي تعمل على إمداد ووردبريس بوظائف جديدة أو تحسين الوظائف الحالية فهي تزيد من سوية الخصائص الرئيسية لووردبريس وتُضيف خصائص جديدة للموقع. تُطور الإضافات عادة من خلال متطوعين، لذلك فهي تُعرض مُعظم الأحيان بشكل مجاني لمُستخدمي ووردبريس. تستطيع الاطلاع على الإضافات من خلال مستودع إضافات ووردبريس والتي تم اختبارها بشكل جيد وتُعتبر آمنة للاستخدام ولكن تختلف الجودة من ناحية الكتابة والالتزام بنصائح توثيق مجتمع مطوري ووردبريس من مُطور لآخر، وغالبة هذه الإضافات يتم تحديثها دوريًا لإصلاح المشاكل التي تظهر فيها وسد الثغرات الأمنية المُكتشفة. كيف تساهم هذه الإضافات في بنية ووردبريس؟ إن نظام إدارة محتوى ووردبريس أو بنية ووردبريس يهدف بشكل رئيسي لنشر المحتوى وإدارة المستخدمين، وكل إضافة هي جزء إضافي برمجي سهل التثبيت يُساهم في تعزير الخدمات الأساسية لووردبريس أو إضافة وظيفة وميزة جديدة له. يُقدم ووردبريس أساس لبناء الموقع والإضافات هي أحد المُكملات للبناء والتي من خلالها تدعم موقعك بالوظائف التي تريدها أو تحتاجها دون الحاجة لامتلاكك خبرة برمجية أو حتى الاستعانة بمُطور لأن الكم الكبير من الإضافات المجانية المتوفرة تُغطي قسمًا لا بأس به مما يحتاجه المستخدمون ويبقى بعض الأمور التي تحتاج فيها مُبرمجًا. بعض الأمثلة على الإضافات تندرج بعض من أكثر الإضافات شعبية -المتواجدة ضمن مستودع ووردبريس- ضمن التصنيفات التالية: التحكم بالتعليقات المزعجة تحسين محركات البحث SEO تصدير واستيراد البيانات التجارة الإلكترونية E-commerce الأمن التخزين المؤقت Caching ما سبق هو عينة صغيرة فهناك الآلاف من الإضافات المتوفرة ضمن المستودع وهذا يزيد من فرصة إيجادك لما تريده من خواص أو ميزات. إيجاد وتثبيت الإضافات إيجاد إضافات تستطيع تصفح الإضافات والبحث عما تريده ضمن مستودع ووردبريس حيث جميع الإضافات مجانية ومتوفرة للتنزيل كملف مضغوط zip ليبقى عليك رفعها وتثبيتها على موقع ووردبريس. يوجد طريقة أخرى للبحث عن الإضافات وتثبيتها وذلك من لوحة تحكم ووردبريس لموقعك مباشرًة. توجه للقائمة الرئيسية ومنها لتبويب "إضافات" ثم "أضف جديد"، هنا يمكنك تصفح الإضافات والبحث عنها بالاسم وتثبيتها من خلال خيار "التنصيب الآن". الأمر بسيط ولا يحتاج خبرة، فقط عليك البحث بشكل جيد عن إضافة تُناسبك طلبك. تحديث الإضافات يعمل مطورو الإضافات على تحديث إضافاتهم دوريًا حيث تظهر هذه التحديثات ضمن صفحة الإضافات على موقع ووردبريس. لمعرفة الإضافات الموجودة ضمن موقعك والتي تحتاج إلى تحديث: اضغط على "إضافات" ضمن القائمة الجانبية في الجهة اليمنى من لوحة التحكم. ابحث ضمن القائمة التي تعرض الإضافات المثبتة على موقعك وابحث إن كان أي منها يحتوي على السطر "هناك نسخة جديدة متاحة من…". اضغط على رابط "عرض تفاصيل النسخة…" لعرض تفاصيل أوسع عن النسخة الأحدث من الإضافة. اضغط على "التحديث الآن" لتحديث الإضافة. توافق الإضافة في حال لم يصدر تحديث للإضافة منذ آخر تحديث لووردبريس فقد تصبح غير متوافقة أو نسبة توافقها مع الإصدار الجديد من ووردبريس قد تكون غير معروفة. تستطيع رؤية معلومات التوافق مع نسختك من ووردبريس ضمن معلومات الإضافة من صفحة "أضف جديد" ضمن تبويب الإضافات أو من قائمة الإضافات التي تم تثبيتها. توافقية الإضافات الجديدة لتعرف إن كانت الإضافة متوافقة مع نسخة ووردبريس التي تعمل عليها قبل تثبيتها، توجه إلى تبويب "أضف جديد" ضمن قائمة الإضافات من لوحة تحكم ووردبريس حيث يتضمن وصف كل إضافة ضمن هذه الصفحة ملاحظة عن محتواها "متوافقة مع نسختك الحالية من الووردبريس" أو "غير مجربة مع نسختك من الووردبريس". تستطيع الضغط على "تفاصيل أكثر" لمشاهدة معلومات عن توافقية الإضافة. توافقية الإضافات المثبتة لمعرفة معلومات توافقية الإضافات المثبتة سابقا على ووردبريس، اضغط على "إضافات" ضمن القائمة الموجودة على اليمين في لوحة تحكم ووردبريس. يجب أن يتضمن كل عنصر ضمن هذه القائمة على رابط "تفاصيل أكثر". اضغط عليه لمزيد من المعلومات عن توافقية الإضافة مع النسخ المختلفة لووردبريس. تثبيت الإضافات يوجد ثلاث طرق لتثبيت إضافة ووردبريس. التثبيت التلقائي للإضافة، حيث يمكن تثبيت أي إضافة موجودة ضمن مستودع ووردبريس بشكل تلقائي من خلال المثبت المبني ضمن ووردبريس. رفع الإضافة من خلال لوحة تحكم المدير، حيث تستطيع بسهولة تثبيت الإضافة من خلال رفع الملف المضغوط zip الخاص بها من على حاسوبك. التثبيت اليدوي للإضافة، ففي بعض الحالات قد تضطر لرفع الملف المضغوط للإضافة من خلال بروتوكول SFTP. التثبيت التلقائي للإضافة هذه الطريقة هي الأسهل لتثبيت الإضافة، وتتضمن الخطوات التالية: توجه إلى "إضافات" ثم تبويب "أضف جديد". استخدم مربع البحث الموجود في الزاوية العلوية اليسرى للبحث عن إضافة باستخدام كلمة مفتاحية أو اسم المؤلف أو وسم. سوف تظهر لك صفحة نتائج البحث التي تتضمن مجموعة من الإضافات، اختر الإضافة التي تريد واضغط على عنوانها لتقرأ المزيد عن مواصفاتها. قد تتضمن هذه الصفحة ملاحظات للتثبيت أو توثيق الإضافة أو معلومات أخرى مفيدة. اضغط على "التنصيب الآن" لتثبيت الإضافة. اضغط على "تفعيل" لتفعيل الإضافة. رفع الإضافة بشكل يدوي من لوحة تحكم المدير في ووردبريس إن كنت تمتلك نسخة مضغوطة من ملف الإضافة، تستطيع رفعها بشكل يدوي لتثبيتها من خلال لوحة تحكم المدير لووردبريس. توجه إلى "إضافات" ثم تبويب "أضف جديد" اضغط على خيار "رفع إضافة" الموجود في الزاوية العلوية اليمنى. اختر الملف المضغوط zip من حاسوبك. اضغط على "التنصيب الآن" عند اكتمال التثبيت سوف تظهر عبارة "تم تنصيب الإضافة بنجاح". اضغط على "تفعيل الإضافة" في أسفل الصفحة. التثبيت اليدوي للإضافة قد تضطر في حالات نادرة لتثبيت الإضافة يدويًا وذلك بنقل الملفات للمخدم. يُنصح بهذه الطريقة فقط عند الحالات الضرورية فمثلا قد لا يكون المخدم الخاص بك مُعدًا ليسمح بعملية التثبيت التلقائية. تتطلب منك هذه الطريقة الإلمام بكيفية نقل الملفات باستخدام بروتوكول SFTP. عليك فك ضغط ملف الإضافة في حال كانت بصيغة zip. يجب أن تجد بعد فك الضغط مجلدًا وحيدًا بنفس اسم الإضافة. ابحث ضمن مجلد الإضافة عن ملف readme.txt واقرأ محتوياته للتأكد من أن هذه هي الإضافة الصحيحة والاطلاع على التعليمات الخاصة بالتثبيت إن وجدت. الآن اتصل بالمخدم الخاص بك والذي يحتوي على موقعك من خلال بروتوكول SFTP. انسخ مجلد الإضافة إلى المسار wp-content/plugins/ ضمن مسار ووردبريس. بهذا تكون قد ثبتت الإضافة ضمن موقعك. توجه إلى صفحة الإضافات المنصبة في موقعك وحدد مكان وجود الإضافة الجديدة التي قمت برفعها. اضغط على خيار "تفعيل". في حال وجود خيار "تفاصيل أكثر"، اضغط عليه لمعرفة المزيد من المعلومات عن الإضافة. تحذير: قد تضع هذه العملية موقعك في موضع خطر في حال كانت الإضافة التي تحاول تثبيتها غير متوافقة مع نسخة ووردبريس لموقعك الالكتروني أو في حال كانت من مصدر غير موثوق. احرص على أخذ نسخة احتياطية عن موقعك قبل البدء بهذه العملية. الإضافات المفضلة تستطيع إضافة أي إضافة إلى قائمة المفضلة لديك وتستطيع بسهولة عرض وتثبيت الإضافات المفضلة لمستخدم ووردبريس آخر. تفضيل إضافة عليك تسجيل الدخول ضمن موقع ووردبريس ثم التوجه إلى مستودع إضافات ووردبريس. عند مراجعة صفحة أي إضافة يمكنك الضغط على أيقونة القلب الموجودة إلى جانب خيار التنزيل. سوف يظهر ضمن ملفك العلني على ووردبريس قائمة بالإضافات التي تُفضلها حالما يصبح لديك إضافات مُفضلة كما أن تقييمك للإضافة سوف يظهر في نفس المكان في حال نشرت مراجعة للإضافة. مشاهدة الإضافات المفضلة لمستخدم لمشاهدة الإضافات المفضلة لدى مستخدم ووردبريس، بما في ذلك الإضافات التي تفضلها أنت: توجه لصفحة "أضف جديد" للإضافات ضمن موقعك. اضغط على لسان المفضلة اكتب اسم المستخدم ضمن الحقل المخصص. اضغط على "احصل على المفضلة". تتضمن كل الإضافات الظاهرة هنا خيار "التنصيب الآن" لتتمكن من إضافتها لموقعك بسهولة. حذف إضافة تمتلك الإضافات آلية إلغاء تثبيت آمنة وسهلة الاستخدام وفي حال لم يكن هذا متوفر لديك لسبب ما، تستطيع حذف الإضافة بشكل يدوي. الحذف التلقائي للإضافة الطريقة الآمنة والسهلة لحذف إضافة هي عبر لوحة تحكم مدير ووردبريس. توجه إلى صفحة "إضافات"، ثم حدد الإضافة التي تريد إلغاء تثبيتها. اضغط على خيار "تعطيل". اضغط الآن على خيار "حذف". الحذف اليدوي لإضافة قد تضطر في حالات نادرة حذف الإضافة يدويًا بدون استخدام لوحة تحكم مدير ووردبريس ويُنصح باستخدام هذه الطريقة فقط عند الضرورة. توجه إلى صفحة "إضافات"، وحدد الإضافة التي تريد حذفها. اضغط على خيار "تعطيل". في حال عدّلتً على ملفات القالب لكي تتمكن من تثبيت الإضافة عليك إزالة هذه التعديلات قبل حذفها. اتصل بالمخدم الخاص بموقعك باستخدام بروتوكول SFTP. توجه إلى مسار ووردبريس، ثم wp-content/plugins/ وحدد المجلد الخاص بالإضافة التي تريد حذفها. الآن احذف المجلد ومحتوياته. توجه من جديد لصفحة "إضافات" ضمن لوحة تحكم مدير ووردبريس، وتأكد من أن عملية حذف الإضافة المطلوبة تمت بنجاح. ملاحظة: انتبه أنه ليس بالضرورة أن يتماثل اسم الإضافة مع اسم المجلد الخاص بها لذلك عليك الانتباه. تحذير: تتضمن العملية التالية حذف ملفات يدويًا من المخدم الذي يتواجد عليه موقعك لذلك قد يكون هذا خطيرًا ويُنصح بأخذ نسخة احتياطية عن الموقع قبل البدء بهذه العملية. حل المشاكل قد لا تعمل إضافة ووردبريس كما هو متوقع منها، وللأسف لا يوجد طريقة محددة أو وصفة جاهزة لحل مثل هذه المشاكل لذلك يُوفر هذا القسم معلومات مفيدة لك قدر الإمكان. المصادر راجع التوثيق الخاص بالإضافة لتتأكد من أنك اتبعت التعليمات الصحيحة. انظر: صفحة "إضافات" ثم "تفاصيل أكثر". صفحة "إضافات" ثم اضغط على "استكشاف الأخطاء" ابحث ضمن منتديات دعم ووردبريس عن اسم الإضافة والكلمات المفتاحية المرتبطة بالمشكلة التي تواجهها. ابحث ضمن مستودع ووردبريس عن ملاحظات للإضافة وروابط لمشاكل تم الإبلاغ عنها ضمن المنتدى. توجه للموقع الالكتروني التابع لمطور الإضافة وتحقق من مدونته أو صفحة الإضافة عن أي مشاكل شائعة أو نصائح. ابحث ضمن شبكة الويب عن اسم الإضافة وكلمات مفتاحية مرتبطة بالمشكلة. انشر سؤالًا ضمن منتدى دعم ووردبريس يتضمن اسم الإضافة والمشكلة التي تواجهها ضمن العنوان. للحصول على نصائح لكيفية تحسين حظوظك في الحصول على مساعدة، ألق نظرة على الحصول على مساعدة ووردبريس. حلول ممكنة من الممكن أن تكون الإضافة مثبتة ولكن غير مفعلة، لذا تحقق من ذلك ضمن صفحة "إضافات منصبة". عطل الإضافة ثم فعلها من جديد لربما هذا يجعلها تعمل. ربما سبب المشكلة هو تعارض عمل الإضافة مع إضافة أخرى موجودة مسبقًا لذلك جرب تعطيل إضافات أخرى حتى تكتشف إن كان أحدها سبب المشكلة. قد تكون المشكلة من الإضافة نفسها أو عدم توافقها مع نسخة ووردبريس لديك. ابحث عن إضافات مشابهة يمكنك استخدامها بدلا منها. حل مشاكل متقدم قد تكون المعلومات الموجودة في هذا القسم غير مألوفة أو مخيفة لأي مُستخدم جديد لووردبريس ولكن إن كنت تمتلك خبرة جيدة بمنصة ووردبريس ولا تخاف من الغوص عميقًا فإن هذا القسم مفيد لك. تساعدك هذه الخطوات على حل المشكلة تواجهك مع إضافة جديدة أو إضافة سابقة توقفت عن العمل بعد تحديث: في حال ثُبتت الإضافة يدويًا: تحقق من موقع مجلد الإضافة، يجب أن تجده ضمن المسار /wp-content/plugins عند رفعك نسخة جديدة من الإضافة عليك التحقق من أن النسخ القديمة تم حذفها أو إعادة تسمية المجلد الخاص بها. استخدم بروتوكول SFTP لحذف مجلد الإضافة ثم أعد تثبيتها من جديد. في حال قمت بتعديل على ملفات القالب ليتوافق مع الإضافة عليك مراجعة التعديلات. تأكد أن الشيفرة صحيحة وخالية من الأخطاء الكتابية وفي مكانها الصحيح (مثلا: ضمن حلقة ووردبريس وليس خارجها). في حال عدم ظهور الإضافة ضمن قائمة الإضافات، عليك إلقاء نظرة على الملف الرئيسي للإضافة باستخدام محرر الإضافات للتأكد من أن شيفرة الترويسة للإضافة موجودة ومكتوبة بشكل صحيح. في حال استخدامك لقالب ووردبريس مخصص عليك تفعيل القالب الافتراضي بدلًا منه وتأكد هل ما زالت المشكلة موجودة أم لا؟ في حال توقفت المشكلة عن الظهور يجب عليك التواصل مع مطور هذا القالب للمساعدتك على حل المشكلة. ألغ تفعيل جميع الإضافات ثم أعد تفعيل الإضافة التي تسبب المشكلة، وإن عملت الإضافة بدون مشاكل فهذا يعني وجود تعارض مع أحد الإضافات المُفعلة لديك. الآن عليك تفعيل الإضافات الأخرى واحدة تلو الأخرى ولاحظ إن عادت المشاكل لتكتشف عندها الإضافة التي تسبب هذا التعارض. نصائح حول إضافات ووردبريس ما يلي هي نصائح وتقنيات للمستخدمين المتقدمين والمطورين. إدارة الإضافة يتم إدارة الإضافات من لوحة تحكم ووردبريس للمدير من صفحة "إضافات منصبة" حيث تظهر الإضافات ضمن هذه الصفحة على شكل قائمة وتكون إما فعالة أو معطلة. تستطيع من هنا تفعيل الإضافات أو تعطيلها وحذفها كما تتضمن كل إضافة روابط تعطيك معلومات أوسع عن الإضافة حيث أن الإضافات المكتوبة بخط عريض تكون فعالة. يجب أن يتضمن الملف الرئيسي في كل إضافة ترويسة تُظهر المعلومات الأساسية عن الإضافة حيث يتعرف ووردبريس على هذه الترويسة والتي يستخدمها لاستخلاص المعلومات التي تظهر في قائمة الإضافات ضمن صفحة المدير. <?php /** * Plugin Name: Magic Plugin * Description: Magic Plugin performs magic. * Plugin URI: http://example.com/magic-plugin * Version: 2.3 * Author: Mr. Magic * Author URI: http://example.com/ * Text Domain: magic-plugin * * @package Magic Plugin */ ?> في حال لم تجد الإضافة التي ثبتّها في قائمة الإضافات ضمن صفحة المدير فهذا يعني أن هناك مشكلة في الترويسة. يجب أن تتضمن كل إضافة ملف readme.txt والذي يتضمن معلومات عن المطور والنسخة والترخيص وخطوات التثبيت وغيرها. لإلقاء نظرة على هذا الملف، اضغط على محرر الإضافات وتوجه للإضافة المطلوبة واقرأ ملف readme.txt. إضافات مفعلة على الشبكة يمكنك ضمن شبكة مواقع متعددة في ووردبريس تثبيت إضافة وتفعيلها على الشبكة وهذا يعني أنها سوف تكون فعالة على جميع المواقع ضمن الشبكة وبهذه الطريقة يمكنك تحديد الوظائف الأساسية التي يجب على كل موقع ضمن الشبكة امتلاكها (هذه الوظائف مرتبطة بالإضافات المُفعلة على الشبكة). لا يمكن تعطيل هذه الإضافات باستخدام صفحة "إضافات منصبة" ضمن أي موقع ضمن الشبكة، فقط مدير الشبكة يستطيع تعطيل هذه الإضافات. يعمل ووردبريس على تحميل هذه الإضافات قبل الإضافات العادية وهذا يعني أن الشيفرة والخطافات Hooks ضمن الإضافات الواجب استخدامها سوف تكون متوفرة لباقي الإضافات. المعلومات ضمن هذا القسم تنطبق فقط على شبكة مواقع ووردبريس لأنك تستطيع إضافة وحذف الإضافات كما تريد ضمن موقع ووردبريس وحيد. ألق نظرة على تفعيل الإضافات على الشبكة وإنشاء شبكة لمزيد من التفاصيل. إخفاء الإضافات عند تعطيلها تضيف بعض الإضافات عند تفعيلها شيفرة إلى ملفات قالب ووردبريس ويمكن أن يبقى هذا الكود الإضافي في مكانه حتى بعد تعطيل الإضافة وهذا قد يؤثر على شكل القالب أو وظائفه لينتج بعض الأخطاء. لذلك من المهم منع إضافة معطلة من أن يتم اكتشافها أو استخدامها ولفعل ذلك يجب أن تضيف شيفرة بي اتش بي إلى القالب لتنفيذ عملية تحقق بسيطة من وجود الإضافة ()function_exists. (انظر إلى المثال في الأسفل) ثم ارفع القالب المعدل إلى مجلد wp-content. تقوم الدالة البرمجية if(function_exists()) بالتحقق من الإضافة لتقوم باستدعاء بقية الدوال المرتبطة بهذه الإضافة إن كانت مثبتة ونشطة أما في حال أعادت الدالة FALSE فهذا يعني أن الإضافة غير مثبتة أو غير مُفعلة ويجب تجاهل الدوال المرتبطة بالإضافة ومتابعة تحميل الصفحة. <?php if ( function_exists( 'FUNCTION NAME' ) ) { FUNCTION_NAME(); } ?> تستخدم الإضافة في المثال دالة تدعى ()alexgetshoutbox لطباعة محتواها. <?php if ( function_exists( 'alex_get_shoutbox' ) ) { alex_get_shoutbox(); } ?> تطوير الإضافات تُشكل الإضافات جزء أساسي من ووردبريس ومسيرة تطوره وشعبيته لذلك يعتمد مجمتع ووردبريس على المطورين الراغبين في إغناء مستودع الإضافات الذي يمتلك الآن مجموعة كبيرة من الإضافات المجانية التي تقدم العديد من الميزات الإضافية للبنية الأساسية لووردبريس. يُمكنك الانضمام لهذا المجتمع من خلال إنشاء إضافة خاصة بك ونشرها ضمن مستودع ووردبريس. إن كنت جديدًا في مضمار تطوير الإضافات عليك الإطلاع على هذه المصادر التي يمكن أن تكون مفيدة لك كنقطة انطلاق. ترجمة -وبتصرف- للمقال Managing Plugins من موقع ووردبريس اقرأ أيضًا تعلم ووردبريس
-
ما هو القالب؟ القالب Theme هو طريقة لإعطاء شكل وتصميم لموقع ووردبريس ولكن عمليا هو أكثر من ذلك لأن عمل القالب لا يقتصر على تغيير مظهر الموقع فحسب بل يوفر مجموعة من الوظائف والمميزات للتفاعل مع مستخدمي الموقع. قالب ووردبريس عبارة عن مجموعة من الملفات تعمل معًا لإنتاج واجهة مرئية ذات طابع موحد للموقع الالكتروني تُدعى هذه الملفات بملفات القالب. يُعدل القالب الطريقة التي يُعرض بها الموقع من دون التعديل على البرمجية القائم عليها أي ووردبريس. تضمن ملفات القالب صور (jpg, *.png, *.gif.*) وملفات تصميم (css.*) وصفحات مخصصة إضافة إلى أي ملفات برمجية مطلوبة (php.*). ألق نظرة على ملفات القالب لمعلومات أكثر. لنقل أنك تكتب كثيرًا عن الجبنة و الخضار، تستطيع من خلال حلقة ووردبريس وملفات القالب تخصيص مقالات تصنيف الجبنة لتظهر بشكل مختلف عن مقالات تصنيف الخضار. أنت تمتلك تحكمًا كاملًا بكيفية ظهور صفحاتك وتصنيفاتك وحدودك الوحيدة ترتبط بحدود قدرتك على الإبداع والتخيل. لمزيد من المعلومات عن كيفية إنشاء شكل مخصص لعدة قوالب ضمن قالبك، ألق نظرة على هرمية ملفات القالب. لتفهم المخطط السابق بشكل أفضل تستطيع التفاعل معه. القوالب الافتراضية يمتلك ووردبريس الآن ثلاث قوالب مجانية: القالب الافتراضي Twenty Nineteen theme (العرض التجريبي) والقوالب الافتراضية السابقة بالعرض التجريبي Twenty Seventeen، وTwenty Sixteen. تستطيع التبديل بين هذه القوالب باستخدام تبويب "مظهر" ضمن القائمة الرئيسية في لوحة تحكم ووردبريس. سوف تظهر القوالب التي أضفتها ضمن مسار القالب في صفحة المدير ضمن تبويب "مظهر"، ثم "قوالب". احصل على قوالب جديدة مستودع قوالب ووردبريس هو الموقع الرسمي لقوالب ووردبريس، حيث تمت مراجعة جميع القوالب المعروضة ضمنه من قبل فريق مختص والتأكد من التزامها بمجموعة كبيرة من القواعد لضمان تجربة آمنة ومرضية لمستخدم القالب. تستطيع بسهولة إيجاد القالب المناسب لك من بين 2900 قالبًا باستخدام البحث المتقدم والمرشحات التي تتضمنها صفحة البحث والتي تتعلق بتصميم الموقع والمميزات التي يمتلكها القالب. يُمكنك الإطلاع على العرض التجريبي للقالب مع معاينة الميزات ضمن صفحة معلومات القالب في حال لم تكن الصور وقائمة المميزات كافية لك لتقرر هل القالب مناسب لاحتياجاتك أم لا. إضافة قوالب جديدة تتضمن معظم القوالب الموجودة في مستودع قوالب ووردبريس تعليمات لكيفية تثبيتها وبالأخص تلك التي تتطلب خطوات إضافية عن الخطوات المُعتادة لذلك تأكد من قراءة هذه التعليمات واتباعها جيدًا للحصول على عملية تثبيت ناجحة للقالب وفي حال لم يعمل القالب بعد اتباعك للتعليمات فعليك بالتواصل مع مؤلف القالب للمساعدة. إضافة قوالب جديدة باستخدام صفحة المدير تستطيع تنزيل القوالب من مستودع قوالب ووردبريس مباشرة على موقعك باستخدام خيار "أضف جديد" ضمن تبويب "قوالب" في قائمة "المظهر". تسجيل الدخول لصفحة المدير في ووردبريس. اختر "المظهر" ثم "قوالب". اختر "أضف جديد". استخدم إما مربع البحث أو خيارات الترشيح للبحث عن القالب الذي تريد استخدامه. اضغط على "معاينة" لمعاينة القالب أو اضغط "تنصيب" لرفع القالب إلى موقعك الإلكتروني. أو استخدم خيار "رفع قالب" في أعلى الصفحة لرفع نسخة مضغوطة عن القالب الذي سبق لك تنزيله لحسابك. إن كان القالب مرفوعًا مسبقًا على موقعك الالكتروني ولكن غير مُفعل عندها تستطيع استخدام خيار المعاينة لمعاينة شكل القالب على موقعك الالكتروني قبل تفعيله لتأخذ فكرة كيف سوف يبدو مع المحتوى الموجود على موقعك. إضافة قوالب جديدة من خلال لوحة cPanel في حال تمتلك استضافة تقدم لوحة تحكم cPanel فإنك تستطيع استخدامها لرفع ملفات القالب لموقعك الالكتروني ولاتباع هذه الطريقة يجب أن تمتلك ملفات القالب بالشكل المضغوط بامتداد zip أو gz. نزل ملف zip للقالب إلى حاسوبك. ضمن مدير ملفات cPanel، توجه إلى مجلد Themes. قد يختلف المسار لهذا المجلد تبعًا للاستضافة التي لديك ولكنك ستجده عمومًا ضمن مجلد public_html ثم المسار /wp-content/themes/. حالما تصبح داخل مجلد themes ضمن مدير ملفات cPanel، اضغط على خيار Upload وارفع الملف المضغوط zip للقالب الذي قمت بحفظه في الخطوة الأولى. حالما يتم رفع الملف المضغوط zip، اضغط عليه بالزر اليميني للفأرة واختر Extract من القائمة. بعد أن يتم استخراج ملفات القالب بنجاح، اتبع التعليمات في الأسفل لتفعيل القالب الجديد. إضافة قوالب جديدة FTP لإضافة قالب جديد لموقع ووردبريس خاصتك عبر بروتوكول FTP سوف تحتاج إلى برنامج FTP client وملفات القالب بعد فك ضغطها. حمل ملفات القالب المضغوطة zip ثم استخرج هذه الملفات. يجب أن تحصل على مجلد له نفس اسم القالب يتضمن ملفات القالب. استخدم برنامج FTP Client للدخول إلى استضافتك وتوجه إلى المسار /wp-content/themes/. ارفع مجلد القالب إلى المسار السابق ضمن استضافتك. اتبع التعليمات في الأسفل لتفعيل القالب الجديد. تفعيل القالب الآن وبعد أن أصبح القالب الجديد ضمن المسار /wp-content/themes/ (سواءً استخدمت صفحة المدير، أو cPanel، أو FTP) أصبح جاهز للتفعيل. جميع القوالب الموجودة ضمن المسار /wp-content/themes/ متوفرة للتفعيل والتحديث (عندما يتم توفير التحديث من قبل مؤلف القالب) ولكن فقط قالب واحد يمكن أن يكون نشط. عندما يتم تفعيل قالب فهذا يعني أنه سوف يتم استخدام تصميم القالب ووظائفه (الشكل والمميزات الوظيفية) على موقعك الإلكتروني. سوف يتم إعلامك بتنبيه أن عملية تفعيل القالب قد تمت بنجاح. لتفعيل قالب على موقعك الإلكتروني: يجب تسجيل الدخول لصفحة المدير في ووردبريس. اختر "المظهر"، ثم "قوالب". يجب أن يظهر لك هنا كل القوالب الموجود ضمن المسار /wp-content/themes/ ومن هنا تستطيع تفاصيل كل قالب من خلال الضغط على تفاصيل القالب (حرك مؤشر الفأرة فوق صورة القالب). يسمح لك خيار معاينة حية بمعاينة القالب على موقعك مباشرة بما يوجد عليه من محتوى. اضغط على تفعيل لتفعيل القالب. سوف يتم تفعيل خيارك فورًا. ملاحظة: في حال كانت المعاينة المباشرة للقالب فارغة لاتُفعِّل القالب الجديد بدون التحري عن الموضوع أكثر. فمن المحتمل ألا يُعرَض موقعك بطريقة صحيحة، وإن كنت لا ترى الصورة المُصغرة للقالب أبدًا فقد تكون ملفات قالبك الجديد عاطلة. ألق نظرةً أسفل القالب الذي ثبّتته لترى إن كانت هناك أي معلومات عن القالب المُعطل وفي هذه الحالة تواصل مع مؤلف القالب للمساعدة. إنشاء قوالب إن كنت مهتمًا بإنشاء قالب خاص لك أو مهتم بتعلم المزيد عن هرمية القوالب، من فضلك راجع التوثيق المتعلق بتطوير القوالب. إن كنت تريد فقط تخصيص محتوى قالبك لاستخدامك الخاص فعليك التفكير في إنشاء قالب ابن. مهما كان ما تريد أنت مرحب بك لتنضم لفريق مراجعة القالب وقناتهم المخصصة على تطبيق سلاك themereview. تستطيع هنا طلب المساعدة عند تطوير القوالب لمستودع قوالب ووردبريس أو حتى البدء بمراجعة القوالب بنفسك. ترجمة -وبتصرف- للمقال Using Themes من موقع ووردبريس.
-
استخدام الوجوه التعبيرية ما هي الوجوه التعبيرية؟ الوجوه التعبيرية والمعروفة أيضا بأيقونات المشاعر هي عبارة عن حروف رسومية تُستخدم لتضمين المشاعر ضمن الكتابة وهي طريقة ممتازة لتحسين المنشورات. تُستخدم علامتا ترقيم أو أكثر لإنشاء وجه تعبيري. بعض الأمثلة: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } علامات الترقيم الوجه التعبيري المُوافق لها ;-) :-) :-( :-? لتتعرف أكثر على أيقونات المشاعر وقصتها ألق نظرة على مقال ويكيبيديا. الوجوه التعبيرية ليست إيموجي يمكن لكل من الوجوه التعبيرية Smilies والإيموجي Emoji عرض وجوه ضاحكة إلا أن الإيموجي هي تطوير لهذه الوظيفة وتمتلك مجالًا أوسع من الصور التي يمكن عرضها. (كما أن كل منها يتم إنشاؤه بشكل مختلف) لمزيد من المعلومات عن الإيموجي وكيفية استخدامها ألق نظرة على صفحة الإيموجي. كيف يتعامل ووردبريس مع الوجوه التعبيرية؟ يُحول ووردبريس بشكل افتراضي نص الوجوه التعبيرية إلى صور جرافيكية فعندما تكتب ;-) ضمن مقالك سوف تتحول إلى عند معاينة المقال أو نشره. إلغاء ميزة صور الوجوه التعبيرية أُزيل خيار تعطيل الوجوه التعبيرية بدءا من نسخة ووردبريس 4.3. يوجد إضافة إن أردت استعادة هذا الخيار. ما النص الذي يجب عليه طباعته كي تظهر الوجوه التعبيرية صور الوجوه التعبيرية والنصوص المُستخدمة لتوليدها: الأيقونة النص النص النص الكامل الأيقونة النص الكامل :) :-) :smile: :lol: :D :-D :grin: :oops: :( :-( :sad: :cry: :o :-o :eek: :evil: 8o 8-o :shock: :twisted: :? :-? :???: :roll: 8) 8-) :cool: :!: :× :-× :mad: :?: :P :-p :razz: :idea: :| :-| :neutral: :arrow: ;) ;-) :wink: :mrgreen: في بعض الحالات توجد عدة نصوص لعرض نفس الوجه التعبيري. حل مشاكل الوجوه التعبيرية لماذا لا تعمل؟ من المُحتمل أن تكون ميزة الوجوه التعبيرية مُعطلة من قبل مدير الموقع أو أن ملفات الصور التعبيرية قد حُذفت من المسار /wp-content/images/smilies. لماذا لا تعمل الوجوه التعبيرية لدي؟ في حال كانت هذه الميزة تعمل مع مستخدمين آخرين على الموقع ولكن لا تعمل بالنسبة لك: اطبع فراغًا قبل وبعد نص الوجه التعبيري فهذا يمنع تضمين الوجه بشكل خاطئ مع النص المحيط به وتأكد أنك لا تستخدم إشارة الاقتباس أو علامات ترقيم أخرى قبل وبعد نص الوجه التعبيري. أين تخزن صور الوجوه التعبيرية؟ تستطيع إيجاد الصور التابعة لها أو صور أيقونات المشاعر ضمن المسار /wp-content/images/smilies. كيف يمكنني جعل صور وجوه تعبيرية مختلفة تظهر؟ أسهل طريقة للقيام بذلك هي ترشيح الوجوه التعبيرية. ارفع الصور التي تريدها أن تظهر بنفس الاسم إلى خادمك ضمن المسار /wp-content/images/smilies ) وأضف هذه الشيفرة ضمن ملف functions.php التابع لقالبك: add_filter( <span class="hljs-string">'smilies_src'</span>, <span class="hljs-string">'my_custom_smilies_src'</span>, <span class="hljs-number">10</span>, <span class="hljs-number">3</span> ); <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">my_custom_smilies_src</span><span class="hljs-params">( $img_src, $img, $siteurl )</span> </span>{ <span class="hljs-keyword">return</span> $siteurl.<span class="hljs-string">'/wp-content/images/smilies/'</span>.$img; } تعمل الشيفرة السابقة على استبدال https://example.com/wp-includes/images/smilies/icon_question.gif بالرابط التالي https://example.com/wp-content/images/smilies/icon_question.gif. لماذا تظهر صور الوجوه التعبيرية فارغة؟ إن رفعت الصور مؤخرًا فقد يكون السبب أن الصور المرفوعة رُفعت بصيغة ASCII عبر تطبيق FTP ولحل المشكلة عليك رفع الصور من جديد مع التأكد أنها سوف تُرفع بصيغة BINARY. تمتلك بعض برامج FTP إعدادات كشف تلقائي تقوم برفع الملفات بالصيغة الصحيحة دون تدخل المستخدم لذلك احرص على تفعيل هذا الخيار في حال وجوده. CSS خاص بالوجوه التعبيرية يُضاف صنف خاص بشكل تلقائي لصور الوجوه التعبيرية في ووردبريس هو wp-smiley عندما يتم عرضها في مقال. تستطيع استخدام هذا الصنف لتغيير شكل أو طريقة ظهور الوجوه التعبيرية بحيث تكون مميزة عن باقي صور المقال. على سبيل المثال، من غير المُعتاد ضبط الصور في المقال لتظهر بالجهة اليسرى من المحتوى مع نص يلتف حولها وشيفرة CSS التالية تجعل ذلك ممكنًا: <span class="hljs-selector-class">.post</span> <span class="hljs-selector-tag">img</span> { <span class="hljs-attribute">float</span>: left; } سوف تؤثر الشيفرة السابقة على جميع الصور ضمن المثال بما في ذلك صور الوجوه التعبيرية ولتخطي ذلك كي لا تتأثر الوجوه التعبيرية عليك إضافة الشيفرة التالية: <span class="hljs-selector-tag">img</span><span class="hljs-selector-class">.wp-smiley</span> { <span class="hljs-attribute">float</span>: none; } للاطلاع على المزيد من المعلومات عن CSS في ووردبريس تستطيع البدء هنا. لمزيد من المعلومات عن الوجوه التعبيرية، يمكن العودة إلى صفحة ويكيبيديا - أيقونات المشاعر. اختصارات لوحة المفاتيح في ووردبريس اختصارات المحرر تستطيع ضمن محرر ووردبريس المرئي استخدام مجموعة من المفاتيح للقيام بأشياء تتطلب عادة استخدام الفأرة أو أجهزة دخل أخرى. توفر عليك الاختصارات التالية الوقت والجهد المُتمثل في مد يدك للوصول للفأرة والضغط على شريط الأدوات: استخدم زر (CTRL + مفتاح) في أنظمة ويندوز ولينكس وزر Command + مفتاح في نظام ماك. CTRL+ مفتاح يظهر في الجدول التالي المفاتيح التي يجب ضغطها مع زر CTRL والوظيفة التي يُقدمها الاختصار. المفتاح الواجب ضغطع مع زر CTRL وظيفة الاختصار C نسخ V لصق A تحديد الكل X قص Y عدم تراجع Z تراجع B خط سميك I خط مائل U خط أسفل الكلام K إدخال أو تعديل رابط Alt + Shift + مفتاح تستخدم الاختصارات التالية مجموعة مختلفة من الأزرار: Alt + Shift + مفتاح في نظامي ويندوز ولينكس وCTRL + Option + مفتاح في ماك. (أنظمة ماك التي تعمل على نسخ ووردبريس 4.2 ما دون تستخدم Alt + Shift + مفتاح). يظهر في الجدول التالي المفاتيح التي يجب ضغطها مع Alt + Shift ووظيفة الاختصار المفتاح التي يجب ضغطه مع Alt + Shift وظيفة الاختصار n التحقق من الإملاء (يتطلب هذا إضافة) l محاذاة لليسار j محاذاة النص من الجانبين c محاذاة للمنتصف d تحديد النص كنص محذوف بوضع خط ضمنه r محاذاة لليمين u قائمة غير مرقمة a تضمين رابط o قائمة مرقمة s إزالة رابط q اقتباس m إضافة صورة w نمط الكتابة الحر بدون إلهاء t إدخال وسم المزيد p إدخال وسم فصل الصفحة h مساعدة x إضافة أو إزالة وسم كود 1 ترويسة 1 2 ترويسة 2 3 ترويسة 3 4 ترويسة 4 5 ترويسة 5 6 ترويسة 6 9 عنوان اختصارات تهيئة النص اختصارات تهيئة النص أثناء استخدام المحرر المرئي (منذ نسخة 4.3) المفتاح الواجب استخدامه كاختصار وظيفة الاختصار * ابدأ قائمة غير مرتبة - ابدأ قائمة غير مرتبة 1. ابدأ قائمة مرتبة 1) ابدأ قائمة مرتبة # H1 ## H2 ### H3 #### H4 ##### H5 ###### H6 > تحول النص إلى اقتباس --- خط أفقي '..' تحول النص إلى كتلة كود اختصارات لوحة المفاتيح للتعليقات أُضيفت ميزة تصفح التعليقات ومراجعتها من خلال اختصارات لوحة المفاتيح في نسخة ووردبريس 2.7 حيث صُممت هذه الاختصارات لتوفير الوقت مما يسمح لك بالتنقل بسرعة واتخاذ إجراءات بحق التعليقات. سوف تجد هذه الاختصارات مفيدة في حال كانت مدونتك تتلقى كمًا كبيرًا من التعليقات. تفعيل اختصارات لوحة المفاتيح يتم تفعيل اختصارات لوحة المفاتيح لكل مستخدم على حدى ويمكنك تفعيلها من خلال زيارة حسابك الشخصي ضمن الأعضاء في صفحة المدير. فعل خيار اختصارات لوحة المفاتيح لإدارة التعليقات باستخدامها. صُمَّمَت اختصارات لوحة المفاتيح لتستخدم كلتا يديك بشكل متزامن على لوحة مفاتيح تعمل بنمط QWERTY. أهمية تحديد التعليق تُستخدم اختصارات لوحة المفاتيح للتنقل بين التعليقات وتطبيق إجراءات عليها ولكن الاختصار لن يعمل ما لم تُحدد التعليق أولًا حيث يظهر التعليق المُحدد بخلفية ذات لون أزرق فاتح وافتراضيا لا يتم تحديد أي تعليق لذلك عليك الضغط على مفتاح j أو k للتنقل بينها. استخدام لوحة المفاتيح للتنقل بين التعليقات يتم التنقل بين التعليقات باستخدام الحرفين j و k. تكون جميع التعليقات غير محددة عند زيارتك لصفحة التعليقات لذلك الضغط أولًا على مفتاح j أو k لتختار أول تعليق وبعدها اضغط على j لتنقل التحديد للتعليق التالي. الضغط على j ينقل التحديد (الخلفية ذات اللون الأزرق الفاتح) للأسفل الضغط على k ينقل التحديد (الخلفية ذات اللون الأزرق الفاتح) للأعلى عند وصولك لأسفل الصفحة وضغطك على الحرف j سوف يتم نقلك إلى الصفحة التالية وسيتم تحديد التعليق الأول من هذه الصفحة. بالمثل فإن الضغط على حرف k عندما تكون في أعلى الصفحة سوف ينقلك إلى الصفحة السابقة مع تحديد آخر تعليق في هذه الصفحة. تجعل هذه الاختصارات من عملية التنقل بين قائمة طويلة من التعليقات أمرًا سهلًا. استخدام اختصارات لوحة المفاتيح لتطبيق إجراءات على التعليقات لتكون هذه الإجراءات ذات مفعول على التعليقات يجب عليك أولًا التأكد من تحديد تعليق (انظر في الأعلى) ثم اضغط على: a: قبول التعليق المحدد وإظهاره. s: اعتبار التعليق المحدد على أنه تعليق مزعج. d: نقل التعليق إلى سلة المهملات (ووردبريس 2.9) أو حذف التعليق الحالي. u: عدم الموافقة على ظهور التعليق المحدد مما يعيده إلى حالة قيد المراجعة. r: بدء عملية الرد على التعليق الحالي (يمكنك الضغط على Esc لإلغاء الرد) q: تنشيط التحرير السريع مما يسمح لك بتعديل سريع على التعليق الحالي. e: النقل إلى صفحة التعديل للتعديل على التعليق الحالي. إجراء جماعي تستطيع أيضًا تطبيق إجراء على عدة تعليقات بنفس الوقت ولكن أولًا عليك تحديد هذه التعليقات باستخدام مفتاح x لتفعيل مربع الاختيار بجانب كل تعليق. يمكن استخدام Shift + x لعكس حالة المربع. حالما تقوم باختيار عدة تعليقات اضغط على: Shift + a للموافقة على التعليقات المحددة Shift + s لتعيين التعليقات المحددة أنها تعليقات مزعجة Shift + d لحذف التعليقات المحددة Shift + u لإلغاء الموافقة على التعليقات المحددة Shift + t لنقل التعليقات المحددة إلى سلة المهملات Shift + z لاستعادة التعليقات المحددة من سلة المهملات ترجمة -وبتصرف- للمقالين: المقال Using ٍSmilies من موقع ووردبريس. المقال Keyboard Shortcuts من موقع ووردبريس.
-
تحدثنا في المقال السابق عن صفحة إعدادات المناقشة على ووردبريس، وفي هذا المقال سنتحدث بالتفصيل عن كيفية إنشاء صفحة بحث، من أجل توفير تجربة استخدام أفضل للزوار ومستخدمي الموقع الإلكتروني الخاص بك ولتسهيل تنقلاتهم داخل الموقع أكثر. صفحة البحث هي صفحة ووردبريس تستخدم قالب صفحة مخصص وذلك لإتاحة ميزة البحث للمستخدمين ضمن موقعك الإلكتروني. أشياء عليك معرفتها تمتلك قوالب ووردبريس المختلفة ملفات قالب (ملفات القالب هنا يُقصد بها ملفات تتضمن شيفرة مرتبطة بنوع صفحة معين مثل صفحة البحث أو صفحة عرض المقالات وهي تُعطي للصفحة هيكليتها ووظيفتها) مختلفة فالبعض يستخدم ملف قالب search.php وهي ليست صفحة بحث بل قالب لعرض نتائج البحث. يوجد أيضا ملف قالب يُدعى searchform.php والذي يُضمن عادة في العمود الجانبي للعديد من القوالب كي يولد مربع بحث. قد لا يمتلك القالب الذي تستخدمه مثل هذا الملف، لذلك تستطيع نسخه بسهولة من القالب الافتراضي لووردبريس. سوف تحتاج إلى قالب للصفحة لإنشاء صفحة بحث مخصصة لك، يتضمن هذا القالب مربع البحث والمعلومات التي تريد للمستخدمين أن يروها قبل بدء عملية البحث ضمن موقعك. تحقق من ملفات قالبك على ووردبريس إن كان يتضمن ملف قالب page.php حيث أن القالب الافتراضي لووردبريس يتضمن هذا الملف ولكن ليس بالضرورة أن تجده في قوالب أخرى. في حال وجدت الملف، اتبع هذه التعليمات أما إن لم تجده فإليك المعلومات اللازمة لك لإنشاء صفحة البحث الخاصة بك. إنشاء قالب صفحة بحث افتح ملف page.php باستخدام محرر نصوص واحفظه باسم searchpage.php. تستطيع إنشاء ملف page.php في حال لم تجده بالاعتماد على قالب الملف index.php للقالب الذي تستخدمه. ملاحظة: اسم الملف search.php محجوز بشكل مًسبق كاسم خاص لقالب ملف البحث لذلك عليك تجنب استخدامه بينما الاسم المًستخدم في الخطوة الأولى searchpage.php غير محجوز ويُسهل عملية التعرف على عمل الملف عند النظر إليه ضمن مجموعة كبيرة من الملفات. اتبع الخطوات التالية بعد حفظ الملف السابق: احذف الحلقة (عمليا كل ما هو موجود ضمن وسم div الخاص بالمحتوى) مع الإبقاء على وسوم div دون أي تعديل. أضف الترويسة مثل "Search Posts" أو أي بديل مماثل. تستطيع استخدام أصناف من ملفات CSS الخاصة بك أو إنشاء أصناف جديدة. انسخ ما يلي ضمن محتوى وسم div أو أي وسم div آخر يتضمن المحتوى الخاص بصفحتك: <?php get_search_form(); ?> توجه لبداية ملف searchpage.php وأضف ما يلي قبل أي شيفرة لإعطاء ترويسة لصفحة البحث الخاصة بك. سوف يتعرف عليها ووردبريس ضمن صفحة الإدارة: <?php /** * Template Name: Search Page */ ?> احفظ الملف. ارفع الملف إلى مسار القالب (في حال قمت بتغييرات على ملف style.css عليك برفعه أيضا). يجب أن يظهر محتوى ملف search.php كالتالي في حال استعنت بملف page.php من قالب Twenty Seventeen لإنشائه: <?php /** * Template Name: Search Page */ ?> <?php get_header(); ?> <div class="wrap"> <div id="primary" class="content-area"> <main id="main" class="site-main" role="main"> <?php get_search_form(); ?> </main><!-- #main --> </div><!-- #primary --> </div><!-- .wrap --> <?php get_footer(); إنشاء صفحة بحث تستطيع الآن إنشاء صفحة البحث بالاعتماد على قالب الصفحة. توجه ضمن صفحة المدير إلى "صفحات" ثم "أضف جديدًا". أدخل "بحث" ضمن حقل العنوان (هذا هو عنوان صفحة البحث الخاصة بك) لا تكتب أي شي ضمن محتوى الصفحة. ابحث عن "خصائص الصفحة" على الجانب الأيسر ضمن نفس الصفحة. اضغط على القائمة المنسدلة في "القالب" واختر Search Page. اضغط على زر "نشر". سوف يظهر مربع بحث بسيط مثل التالي الربط مع صفحة البحث الخاصة بك تستطيع الآن إنشاء رابط لصفحة البحث المخصصة لديك بعدة طرق. باستخدام معرف الصفحة Page ID تستطيع الربط مع صفحة البحث الجديدة من خلال استخدام رقم معرف الصفحة Page ID سواء كنت تستخدم الروابط الدائمة أو لا. أدخل السطر التالي ضمن أي منشور أو صفحة أو ملف قالب. <a href="index.php?page_id=17" title="Search Page">Search Page</a> أو تستطيع استخدام السطر التالي ضمن ملف القالب <a href="<?php echo home_url(); ?>/?page_id=17">Search Page</a> باستخدام الاسم اللطيف slug يتم اختيار رابط الصفحة ضمن تحرير الصفحة وهو عادة اسم الصفحة في حال كنت تستخدم الروابط الدائمة، كما تستطيع تغييره بشكل يدوي. مثال على رابط الصفحة قد يكون كالتالي: <a href="/wordpress/search-page/" title="Search Page">Search Page</a> لأي منشور أو صفحة أو قالب عندما يكون الاسم اللطيف هو "search-page" أو يمكنك إضافة السطر التالي لملف القالب <a href="<?php echo home_url(); ?>/wordpress/search-page/" title="Search Page">Search Page</a> باستخدام ()wp_listpages إن كنت تستخدم وسم القالب ()wp_listpages سوف يتم توليد اسم الصفحة بشكل آلي ضمن قائمة الصفحات الخاصة بك. تخصيص صفحة البحث الخاصة بك الآن وبعد إنشاء صفحة البحث الخاصة بك، تستطيع تخصيص طريقة عرضها وللبدء بذلك افتح ملف searchpage.php ضمن محرر النصوص وأضف ما تريد من تعديلات. تستطيع إضافة نص يساعد الزوار على البحث ضمن موقعك وذلك ضمن ملف searchpage.php قبل الدالة get_search_form(). <p>My Site features articles about <a title="WordPress Articles" href="/category/wordpress/">WordPress</a>, <a title="Web Design Articles" href="/category/web-design/">web page design</a>, <a title="Development Articles" href="/category/website-development/">website development</a> and <a title="CSS Articles" href="/category/css/">CSS</a>.</p> <p>To search my website, please use the form below.</p> ربما تريد إضافة قائمة بالكلمات المفتاحية أو معلومات أخرى أو صور أو تفاصيل تجعل من صفحة البحث الخاصة بك مميزة. حفظ نتائح صفحة البحث والتصفيح قد تتوقف صفحة نتائج البحث والتصفيح Pagination (التصفيح هو عرض أقسام صفحة أو نتائج البحث مُقسمة على عدة صفحات) نتيجة خطأ فادح عند تطبيق تعديلات على شيفرة الصفحة. لتفادي ذلك يجب على المطور أن يُضيف الشيفرة التالية لبداية الصفحة وذلك للتأكد من حفظ الاستعلام Query الرئيسي لووردبريس. يمكنك استخدام متغيرات إضافية للمصفوفة search_query$ للتعديل على الاستعلام. نفِّذ search_query$ من خلال كائن جديد wp_query$. يمكن إيجاد مزيد من المعلومات عن الغرض WP_Query. <br> <?php <br> global $query_string;</p> <p>$query_args = explode("&", $query_string);<br> $search_query = array();</p> <p>if( strlen($query_string) > 0 ) {<br> foreach($query_args as $key => $string) {<br> $query_split = explode("=", $string);<br> $search_query[$query_split[0]] = urldecode($query_split[1]);<br> } // foreach<br> } //if</p> <p>$search = new WP_Query($search_query);<br> ?> <br> يمكنك التعرف على المتغيرات الإضافية التي يمكنك استخدامها لتخصيص الطلب في WP_Query. عرض النتائج الكاملة لعرض نتائج البحث كاملة في صفحة البحث search.php يجب استعادة كامل المنشورات التي عُثر عليها باستخدام الكائن wp_query. <?php global $wp_query; $total_results = $wp_query->found_posts; ?> يمكنك التعرف على المتغيرات الإضافية التي يمكنك استخدامها لتخصيص الطلب في WP_Query. ترجمة -وبتصرف- للمقال Creating a Search Page من موقع ووردبريس.
-
تسمح صفحة إعدادات المناقشة بالتحكم بالخيارات المرتبطة بالتعليقات (تُدعى أيضا بالمناقشة). حيث يُقرر من خلالها المدير تفعيل التعليقات ضمن الموقع أم لا وإن كانت التنبيهات pingbacks والتعقيبات trackbacks مقبولة أم لا وما هي التعليقات التي تُعتبر مزعجة كما يمكنه في الصفحة ذاتها اختيار الحالات التي تُرسل فيها المدونة تنبيهات بريد إلكتروني للمدير لأحداث معينة على الموقع. الإعدادات الافتراضية للمقال يمكن تجاوز هذه الإعدادات فرديًا لكل مقال. محاولة تنبيه المدونات المشار إليها في المقالة: يقوم ووردبريس بإرسال تنبيه ping للموقع أو المقال الذي أُشير له ضمن المقال عند تفعيل هذا الخيار. سوف تظهر هذه الإشارة ضمن قسم التعليقات لموقعهم إن كان الموقع المُشار إليه يسمح بالتنبيهات pingbacks. تتم عملية التنبيه خلال نشر المقال على شبكة الانترنت لذلك وجود العديد من الروابط التشعبية ضمن المقال سوف يُبطئ عملية النشر لأن ووردبريس يقوم بتنبيه جميع المواقع الإلكترونية قبل نشر المقال. السماح بإشعارات الربط من المدونات الأخرى (التنبيهات PingBacks والتعقيبات TrackBack) في المقالات الجديدة: تفعيل هذا الخيار يعني قبول ووردبريس التنبيهات Pings من مواقع أخرى التي يُحتمل أن تشير إلى مقالات ضمنه وكما ذُكر سابقًا فإن التنبيهات PingBacks والتعقيبات Trackbacks سوف تظهر في قسم التعليقات للمقال عند تفعيل هذا الخيار. السماح للناس بإرسال التعليقات على المقالات الجديدة (يُمكن تغيير وتجاوز هذه الإعدادات في كل مقال بطريقة منفصلة) يجب تفعيل هذا الخيار للسماح بالتعليق على المقالات ومن الممكن التحكم بالتعليقات من خلال تحويل المقال لمقال خاص يتطلب كلمة مرور صحيحة قبل السماح بالتعليق أما لمنع الزوار من التعليق يجب عدم تفعيل هذا الخيار. إعدادات التعليقات يجب على المعلق كتابة الاسم والبريد الإلكتروني - يفرض هذا الخيار على أصحاب التعليقات المزعجة بذل جهد إضافي من خلال كتابة الاسم والبريد الإلكتروني قبل نشر التعليق وبالرغم من بساطة الموضوع إلا أنه يُخفض من عدد التعليقات المزعجة. يجب على الزوار التسجيل ليتمكنوا من التعليق - تفعيل هذا الخيار يسمح فقط للزوار المسجلين ضمن الموقع التعليق على المقالات. إيقاف التعليقات تلقائيًا في المقالات التي مرّ على نشرها x يوم. - يُحدد هذا الخيار عدد الأيام اللازمة بعد نشر المقال لإيقاف ميزة التعليقات ضمنه بشكل تلقائي. إتاحة التعليقات التشعبية بحيث يكون العمق x مستويات - يسمح هذا الخيار بكتابة تعليقات متشعبة وتحديد مستوى عمق التعليقات المتداخلة (10 هو الحد الأقصى) المسموح بها. يجب على القالب المُستخدم أن يكون مُجهز بشكل جيد لعرض التعليقات المتداخلة. حدّد عدد التعليقات في كل صفحة بحيث يظهر x تعليق في كل صفحة واعرض صفحة التعليقات [الأولى/الأخيرة] افتراضياً، ويجب أن تظهر التعليقات [الأحدث/الأقدم] في أعلى الصفحة - يسمح هذا الخيار بعرض التعليقات ضمن صفحات وتحديد عدد التعليقات الأعظمي لعرضه ضمنها إضافة إلى اختيار ترتيب الصفحات من الأولى للأخيرة أو العكس وعرض التعليقات ضمن هذه الصفحات من الأقدم أو من الأحدث. أرسل لي بريد إلكتروني في حال يتيح الخياران التاليان التحكم بالأحداث التي يتلقى فيها المؤلفون والمدير تنبيهات عن التعليقات التي تنتظر المراجعة واستخدام "لي" هنا يشير إما إلى مؤلف المقال أو المدير (الشخص الذي يُستخدم بريده الإلكتروني لأغراض إدارية). نشر تعليق، حيث سيتم إرسال تنبيه للمؤلف عند تفعيل هذا الخيار عند كتابة أي تعليق على الموقع ولكن في حال تلقى مقال الكثير من التعليقات سوف يمتلئ صندوق بريد المؤلف بالإشعارات. إضافة تعليق ينتظر المراجعة، إذ سيرسل ووردبريس عند تفعيل هذا الخيار تنبيه بأن التعليق قيد المراجعة، حيث يُرسل التنبيه إلى البريد الإلكتروني المدرج في تبويب "عام" من قسم "إعدادات" ضمن حساب المدير. هذا الخيار مفيد عندما يكون لمدونتك عدة مؤلفين وكل مؤلف مخول لرفض أو قبول التعليقات. يمكن لمدير الموقع باستخدام هذه الطريقة مراجعة التعليقات المقبولة أو المرفوضة من قبل المؤلفين. قبل ظهور التعليق توفر هذه الإعدادات تحكم أوسع بما يتعلق بالتعليقات التي يتم نشرها. يجب الموافقة على التعليق يدويًا - يفرض هذا الخيار الموافقة على التعليقات من قبل المستخدم ذي الرتبة المناسبة حتى في حال تبين أن التعليقات هي تعليقات مزعجة. ألق نظرة على خيارات إدارة التعليقات في الأسفل المتعلقة بالتعليقات المزعجة. صاحب التعليق يجب أن يملك تعليقات سابقة - يضمن تفعيل هذا الخيار أن التعليقات المنشورة هي فقط من قبل زوار يمتلكون بريد إلكتروني تم الموافقة له سابقًا على تعليق وإلا سوف يتم وضع التعليق قيد المراجعة. بالنسبة للتعليقات المكتوبة من قبل صاحب بريد إلكتروني محظور (عناوين البريد الإلكتروني الموجودة ضمن صندوق كلمات التعليقات المزعجة المحلي) سوف يتم وضعها ضمن المراجعة بغض النظر عن حالة قائمة المسموح لهم. إدارة التعليقات يمكن تحديد هذه الخيارات ضمن قسم إدارة التعليقات للتعامل مع التعليقات المزعجة. لا تنشر التعليقات التي تحتوي على x رابط أو أكثر. إذ تتميز التعليقات المزعجة Spam باحتوائها على الكثير من الروابط. كان أصحاب التعليقات المزعجة يُضمّنون 5 أو 10 روابط ضمن تعليقاتهم المزعجة منذ زمن ليس ببعيد وهذا سهّل على المدونيين التعرف على هذه التعليقات ولكن سرعان ما تنبه أصحاب التعليقات المزعجة لهذا الأمر واعتمدوا استخدام رابط أو اثنين ضمن تعليقاتهم. يُمكن تحديد عدد ضمن المربع لإعلام ووردبريس بعدد الروابط التي يُسمح للمُعلق تضمينها قبل تحويل تعليقه للمراجعة. عندما يحتوي التعليق على أي كلمة من الكلمات التالية في نص التعليق، اسم المعلّق، الرابط، عنوان البريد الإلكتروني أو في عنوان IP، أو سلسلة وكيل مستخدم المتصفح، سيتم حينها نقل التعليق إلى طابور المراجعة. أضف في كل سطر كلمة واحدة أو عنوان IP، وخذ بالحسبان أنه يتم البحث داخل الكلمات فإذا أضفت الكلمة "بريس" سيتم إرسال كل تعليق يحتوي على الكلمة "ووردبريس" إلى قائمة الانتظار. يُمكن إضافة الكلمات المزعجة الخاصة بمالك الموقع ضمن هذا المربع ليتم ترشيح التعليقات التي يتم نشرها بالاعتماد على محتواه. مفاتيح التعليقات غير المسموح بها عندما يحتوي التعليق على أي كلمة من الكلمات التالية في نص التعليق، اسم المعلّق، الرابط، عنوان البريد الإلكتروني أو في عنوان IP، أو سلسلة وكيل مستخدم المتصفح، سيتم حينها نقل التعليق إلى سلة المهملات. أضف في كل سطر كلمة واحدة أو عنوان IP. خذ بالحسبان أنه يتم البحث داخل الكلمات فإذا أضفت الكلمة "بريس" سيتم إرسال كل تعليق يحتوي على الكلمة "ووردبريس" إلى سلة المهملات. يُشابه عمل هذا المربع المربع السابق ولكن بدلا من تحويل التعليقات إلى المراجعة يتم تحويل التعليقات إلى سلة المهملات بدون أي تنبيه. يُنصح باستخدام هذا الخيار كملاذ أخير فمن الممكن أن تُحذف تعليقات غير مزعجة. الصور الرمزية عبارة عن صور تُلازم صاحب حساب ووردبريس من مدونة لأخرى حيث تظهر بجانب اسمه عند إرسال تعليق ضمن موقع يستخدم الصور الرمزية. يسمح هذا القسم تفعيل عرض الصور الرمزية للزوار عند كتابة تعليق ضمن المدونة ويستخدم ووردبريس افتراضيًا Gravatars للصور التي تظهر بجانب التعليقات. يمكن استبدال Gravatars باستخدام الإضافات. عرض الصورة الرمزية السماح بعرض الصور الرمزية - تظهر الصور الرمزية بجانب التعليقات عند تفعيل هذا الخيار. نوع الصور الرمزية المسموح عرضها يسمح هذا الخيار بتحديد مستوى الصور التي يُسمح بعرضها على المدونة. G — ملائمة للجميع. PG — ممكن أن تكون مسيئة، عادة لمن أعمارهم 13 سنة أو أكثر. R — موجهة للمراهقين الذين تزيد أعمارهم عن 17 سنة. X — للبالغين فقط. الصورة الرمزية الافتراضية يُمكن عرض الشعار أو توليد صورة بالاعتماد على عنوان بريدهم الإلكتروني للمستخدم الذي لا يمتلك صورة رمزية خاصة به. شخصية غامضة فارغ شعار موقع Gravatar أيقونة (عشوائي) وجوه (عشوائي) وحوش (عشوائي) ريترو (عشوائي) حفظ التغييرات لحفظ التغييرات يجب الضغط على خيار حفظ التغييرات حيث يظهر بعدها في أعلى الصفحة نص يؤكد عملية الحفظ مباشرة بعد الضغط عليه. ترجمة -وبتصرف- للمقال Settings Discussion Screen من موقع ووردبريس.
-
يتضمن هذا المقال معلومات تفصيلية عن كيفية التسجيل ضمن المنصة وإنشاء أكاديمية خاصة وهذا يتضمن إضافة دورات ودروس وطلاب وتصنيفات. أيضًا كيفية إضافة مقالات تُساعد في الترويج للأكاديمية من خلال محركات البحث وقواعد تحسين محركات البحث SEO. تبدأ الخطوة الأولى بالتوجه لمنصة مساق والضغط على الزر الموجود في أعلى الصفحة من جهة اليسار "أنشئ أكاديميتك" وذلك لإنشاء حساب على منصة مساق والذي يقود تلقائيًا لإنشاء أكاديمية تعليمية على المنصة. يُطلب منك الآن إدخال الاسم الكامل والمقصود به هنا هو اسمك الشخصي وليس اسم الأكاديمية لكني استخدمت في هذا المقال اسم أكاديمية حسوب كاسم شخصي، بعدها عليك إدخال عنوان بريد إلكتروني فعال وتمتلك صلاحيات الدخول له. يُمكن أن يكون البريد الإلكتروني من مزود خدمة معروف مثل جيميل وOutlook أو عنوان بريد إلكتروني تابع لنطاق خاص بك مثل info@example.com. بقي عليك اختيار كلمة مرور يسهل عليك حفظها ولكن يصعب توقعها ويُفضل أن تتضمن أرقام وأحرف وإشارات ترقيم وليست ذات معنى مفهوم مثل passwordformsaaq بل استخدم برامج توليد وحفظ كلمات المرور مثل KeePass. اضغط الآن على "أنشئ أكاديميتك". توجه إلى صندوق الوارد للبريد الإلكتروني الذي استخدمته في الخطوة السابقة، في حالتي سوف أتفقد صندوق وارد البريد الذي سجلت فيه وفي حال كان صندوق الوارد خاليًا من أي رسالة تفعيل من منصة مساق عليك طلب الرسالة من جديد من خلال الرابط المبين في أسفل الصورة التالية أو التأكد من مجلد البريد المهمل (السبام). اضغط على رابط "التحقق من عنوان البريد الالكتروني" ضمن الرسالة الواردة لبريدك الإلكتروني ليتم تحويلك لمنصة مساق من جديد لإكمال خطوات إنشاء الأكاديمية. وصلت للخطوة الأخيرة حيث عليك اختيار اسم الأكاديمية وعنوان البريد الإلكتروني الخاص بها، أيضًا عليك اختيار النطاق الفرعي ضمن منصة مساق والذي سوف يُمثل الرابط لأكاديميتك. طبعًا يجب أن يكون الاسم المُختار باللغة الإنكليزية ويُمكن أن يتضمن أرقام أو إشارة "–" أو" _" فقط. على فرض أنك اخترت اسم example للنطاق الفرعي عندها يكون الرابط الذي يشير لأكاديميتك هو example.msaaq.net. تستطيع اختيار اللون الأساسي والثانوي مع الشعار وأيقونة المتصفح الآن أو تأجيل الأمر إن كنت لا تملك أيًا مما سبق. لمن لا يعلم ما هي أيقونة المتصفح فهي الأيقونة الصغيرة التي تظهر في شريط المتصفح في الأعلى وهي ذات أبعاد مربعة 512×512 بكسل. عند اختيار الألوان تستطيع إدخالها بنظام RGB اللوني أو الترميز الست عشري للون HEX أو الاختيار يدويًا. اضغط الآن على "أنشئ أكاديميتك". تظهر لك الآن صفحة تأكيد الانتهاء من إنشاء أكاديميتك مع رابط الوصول للأكاديمية واسم المستخدم وكلمة المرور الخاصة بها وهنا عليك التفريق بين بيانات الدخول للأكاديمية الموجودة هنا وبين بيانات الدخول التي اخترناها في الخطوة الأولى للدخول لحسابك على منصة مساق. أصبح لديك الآن حساب شخصي على منصة مساق وحساب أكاديمية، تستطيع من خلال الحساب الشخصي تغير الاسم والبريد الإلكتروني وكلمة المرور الخاصة بهذا الحساب إضافة إلى اختيار الخطة المناسبة للأكاديمية. أما حساب الأكاديمية يسمح لك بإضافة الدورات والدروس والمقالات والتصنيفات والطلاب وتحديد كلفة الدورات كما أنه يُقدم لك ملخص عن الدورات التي بيعت والأرباح التي تُحققها. مقتطفات من الحساب الشخصي على منصة مساق تتضمن الصفحة الرئيسية لحسابك الشخصي اسم الأكاديمية التي أنشأتها ورابطًا مباشرًا للوحة التحكم الخاصة بها مع إمكانية تعديل النطاق الذي اخترته سابقًا. يُمكنك استخدام نطاق خاص بأكاديميتك أي عنوان موقع مخصص بدلًا من الفرعي التابع لنطاق منصة مساق، لكن في هذه الحالة عليك إجراء بعض التعديلات على النطاق وDNS الخاص به. تستطيع الاطلاع على نصائح أساسية تزوَّد بها قبل شراء نطاق جديد ومقال متجر ووكومرس الخطوات الابتدائية لإنشاء متجرك الإلكتروني: عنوان المتجر وحجز النطاق (Domain) لمزيد من المعلومات عن النطاق. تُوفر منصة مساق ثلاث خُطط يمكنك الاختيار بينها وهي خطة المعلم وخطة المدرسة وخطة الأكاديمية والدفع إما شهريًا أو سنويًا عبر أحد طرق الدفع المدعومة من قبل المنصة والمتاحة في بلدك. لوحة تحكم أكاديميتك على منصة مساق تحتوي لوحة التحكم التي توفرها منصة مساق على كل ما تحتاج إليه للانطلاق بدوراتك أو حتى بأكاديميتك حيث تعرض اللوحة الرئيسية فيها ملخصًا عن أداء أكاديميتك من عدد الطلبات والطلاب وقيمة الأرباح وعدد التعليقات، من هم الطلاب الأكثر شراءً وما هي المنتجات الأكثر مبيعًا إضافة إلى التوزع الجغرافي للطلاب. الأعضاء يتضمن هذا القسم الطلاب والطاقم الإداري وإمكانية استيراد قائمة بالطلاب في حال كنت تعمل على نقل نشاطك من الواقع الحقيقي إلى الواقع الافتراضي كما هو حال معظم المؤسسات التعليمية حاليًا في ظل جائحة كوفيد-19 المُنتشرة. الطلاب تجد في قسم الطلاب بيانات حسابات الطلاب وحالتها حيث تكون الحالة الافتراضية للحساب هي "فعال" ويجب على كل طالب تأكيد بريده الإلكتروني المُستخدم في التسجيل بنفس الطريقة التي أكدت فيها حسابي على منصة مساق. يُفيد آخر ظهور للطالب في معرفة نشاطه في الأكاديمية وهل هو حاليا يتصفح محتوى الأكاديمية أم لا. لأسباب عديدة قد لا تصل رسالة تأكيد البريد الإلكتروني لصاحب الحساب وفي هذه الحالة يمكنك تحديد الحساب المطلوب من خلال وضع إشارة ضمن المربع بجانب الاسم وتحديد الأمر "أرسل تأكيد البريد الإلكتروني" ثم الضغط على "إرسال". أيضًا إن كان المُستخدم لا يستطيع تذكر كلمة مرور حسابه يمكنك بنفس الطريقة السابقة مُساعدته ولكن عبر اختيار الأمر "أرسل استعادة كلمة المرور" ثم الضغط على "إرسال". امتلاك قائمة كبيرة بالطلاب يجعل من الصعب إيجاد حساب الطالب لذلك عليك استخدام مربع البحث الموجود في الأعلى حيث تستطيع البحث باستخدام الاسم أو البريد الإلكتروني أو اسم المستخدم. سوف أنتقل الآن للكلام على عن وظيفة النقاط الثلاث الموجودة في الجهة اليُسرى من حساب الطالب، فعند الضغط عليها سوف تظهر قائمة تتضمن ثلاث خيارات هي "تعديل" و"نقل إلى الطاقم الإداري" و"تعطيل الحساب". تستطيع تعطيل الحساب عند استخدامه بطريقة غير صحيحة مثل التعليق بكلام مسيء ضمن قسم التعليقات في الدروس أو في حال اكتشفت خرقه شروط الاستخدام مثل مشاركة الحساب مع عدة أشخاص أو محاولته تسجيل الدروس الخاصة بك وإعادة بيعها. الخيار الثاني يسمح لك بإضافة أعضاء للطاقم الإداري الخاص بأكاديميتك لمتابعة الطلاب وطلباتهم وتقدمهم ضمن الدورات وهكذا يبقى الخيار الأول والذي يسمح بتعديل كافة بيانات حساب الطالب. يُطلب منك تأكيد عمليتي تعطيل الحساب ونقله للطاقم الإداري أما عملية التعديل فتُحولك إلى صفحة جديدة تتضمن المعلومات التي أدخلها الطالب لحسابه ولك حرية التعديل فيها كما تشاء. تمتلك الصلاحيات الإدارة التي تخولك بتعديل كافة معلومات الطالب من صورة الشخصية واسم وغيرها الكثير. بالنسبة للمستوى التعليمي يوجد أربع خيارات هي "ابتدائي" و"متوسط" و"جامعي" و"بروفيسور" حيث لا تستطيع إضافة خيارات جديدة الأمر الذي لا ينطبق على المهارات حيث تُضاف المهارة بالضغط على زر Enter بعد كل مهارة تكتبها ضمن الحقل. تُقدم لك منصة مساق إمكانية ترقية حساب المستخدم من طالب إلى “Writer” يستطيع كتابة مقالات ضمن أكاديمتيك أو “Instructor” يستطيع إضافة دورات ودروس وواجبات أو “Admin” يستطيع إدارة الموقع بالكامل والتحكم بطرق الدفع وتنفيذ وظائف مرتبطة بإضافة الدورات وإضافة أعضاء للطاقم الإداري وتغيير صلاحياتهم أو “Super-admin” والذي يقوم حاليًا بنفس وظيفة Admin مع فرق بسيط وهو قدرة صاحب صلاحية Super-admin على حذف الحسابات ذات صلاحية Admin أما العكس غير ممكن. الجزء الأخير من هذه الصفحة هو لحالة الحساب إما "فعال" أو "غير فعال" ولحفظ أي تعديل ضمن حساب الطالب يجب الضغط على خيار "تعديل" لتظهر بعدها رسالة منبثقة تؤكد حفظ التعديلات. تستطيع تصدير بيانات الطلاب الحاليين لديك وذلك من صفحة الطلاب وخيار "تصدير بيانات الطلاب" في أعلى الصفحة من جهة اليمين، اضغط عليه لتحميل ملف Excel يتضمن معلومات الطالب التي أدخلها في ملفه الشخصي. الطاقم الإداري يُظهر هذا القسم حسابات الطاقم الإداري الذي اخترته لمساعدتك على إدارة الاكاديمية وهو مشابه لقسم الطلاب مع اختلافين، الأول هو وجود خيار "إضافة عضو إداري" وهذا يسمح لك بإضافة من تريد مباشرًة دون الحاجة ليسجل كطالب ثم نقله للطاقم الإداري والاختلاف الثاني خيار "إعادة إلى الطلاب" الذي يظهر عند الضغط على النقاط الثلاث الموجودة بجانب بجانب كل مستخدم. ملاحظة: باقة المعلم تسمح لك بتعيين حساب واحد ضمن الطاقم الإداري و20 حساب في باقة المدرسة وعدد لا محدود في باقة الأكاديمية. استيراد هذا القسم مفيد جدًا في حال كنت تنتقل إلى منصة مساق من منصة مختلفة أو كنت تريد نقل عملية التعليم في أكاديميتك إلى الواقع الافتراضي استجابة للظروف الطارئة ووجوب التقيد بالتباعد الاجتماعي للوقاية من فيروس كوفيد 19. يجب عليك استخدام ملف Excel يستخدم بنية مشابهة للمثال المُقدم من قبل منصة مساق والذي تستطيع تحميله بالضغط على "الملف التالي" باللون الأزرق. يجب رفع الملف بعد الانتهاء منه باستخدام خيار "تصفح الملفات" لرفعه من حاسوبك. يوجد ثلاث خيارات عليك الانتباه لها قبل بدء عملية الاستيراد وهي هل تريد إرسال رسالة تفعيل للطلاب كي يقوم كل طالب بتأكيد حسابه واختيار كلمة المرور الخاصة. هذا الخيار مُفعل افتراضيًا ولكن بإمكانك تعطيله. هل تريد إعطاء الطلاب وصول لأحد منتجاتك؟ هنا تستطيع اختيار المنتج التي تريد ليحصل عليها الطلاب الموجودين ضمن الملف دون دفع أي قيمة مالية مقابل هذه المنتجات والخيار الثالث يتضمن نفس الأمر ولكن يتعلق بالدورات. الطلبات هنا تتم إدارة الطلبات الواردة للأكاديمية ويتألف من قسمين "الكل" و"بانتظار الموافقة" حيث يسمح لك القسم الأول بالاطلاع على الطلبات الواردة للأكاديمية ومعلومات الطلب مُوضحة في الصورة التالية. تستطيع تصدير بيانات الطلبات على شكل ملف Excel بالضغط على الخيار الذي يحمل نفس الاسم في يسار وأعلى الصفحة ليبدأ التنزيل. عمليا فإن القسمين السابقين هما قسم واحد ولكن توفر القائمة وصولًا سريعًا للطلبات التي تحتاج لموافقتك، وعند زيارتك للصفحة سوف تلاحظ أن الشيء الوحيد الذي تغير هو حالة الطلب في قسم البحث والتي تتغير إلى "قيد الانتظار". الحالات المبينة في الصورة الآتية هي الحالات المُمكنة للطلبات ضمن الأكاديمية. الدورات يتألف هذا القسم من "الكل" حيث تجد الدورات و"الاختبارات" و"التصنيفات" و"المستويات". الكل (الدورات) تستطيع عبر هذا القسم الاطلاع على الدورات الموجودة وكل المعلومات المرتبطة بها من الحالة واسم المدرب والسعر والتصنيف وعدد الملتحقين. كما أن إضافة الدورات متاح عبر النقر على "أضف جديد" في أعلى الصفحة من جهة اليمين. سوف أشرح في قسم لاحق كيفية إضافة دورة لأكاديميتك في منصة مساق. تستطيع تعديل أو استنساخ أو حذف أي دورة موجودة بالضغط على النقاط الثلاث واختيار الأمر المناسب. الاختبارات تجد هنا جميع الاختبارات التي أضفتها للدورات المتوفرة على أكاديميتك والمعلومات المرتبطة بكل اختبار من معدل نجاح وتاريخ الإنشاء وعدد الإجابات. لا يُمكن إضافة الاختبارات من هنا ولكن تستطيع معرفة الآلية من خلال قراءة قسم كيفية إضافة دورة لأكاديميتك في منصة مساق في الأسفل. عند الضغط على عنوان الاختبار سوف يتم تحويلك إلى صفحة تتضمن معلومات عن الطلاب الذين قدموا الاختبار، مثل عدد الأسئلة المحلولة وعدد الإجابات الصحيحة ونتيجة الاختبار وتاريخ البدء والانتهاء لكل طالب. التصنيفات تساعد التصنيفات على فرز الدورات التي تقدمها وهذا يُسهل على زوار الأكاديمية تصفحها والعثور على الدورات المناسبة لهم. يوجد تصنيف افتراضي عند إنشاء الأكاديمية هو "غير مصنف" لا يحتوي على أي تصنيف فرعي. مثال: على فرض أن الأكاديمية التي تريد إنشاءها مختصة في تدريس العلوم عندها يُمكنك إضافة تصنيف "علوم طبيعية" و"كيمياء" كتصنيفات عامة وإضافة "كيمياء عضوية" كتصنيف فرعي للتصنيف العام "كيمياء". لإضافة تصنيف جديد عليك النقر على خيار "أضف جديد" الظاهر في الصورة التالية. سوف تظهر لك نافذة منبثقة تطلب منك اسم التصنيف والاسم الظاهر الذي يتضمن أحرف وأرقام وإشارة "-" (سوف يظهر في الرابط) ووصف إن وجد إضافة إلى أيقونة تُعبر عن محتوى التصنيف ثم الضغط على "حفظ البيانات". لحذف أو تعديل التصنيف اضغط على النقاط الثلاث بجانب التصنيف ولكن إن أردت إضافة تصنيف فرعي له عليك الضغط على اسم التصنيف (باللون الأزرق) أو خيار "عرض" الظاهر عند الضغط على النقاط الثلاث. سوف تظهر لك الصفحة التالية بعد الضغط على اسم التصنيف ولإضافة تصنيف فرعي عليك النقر على "أضف تصنيف فرعي" في أعلى الصفحة من جهة اليسار. سوف تظهر لك نافذة مماثلة تمامًا لما ظهر عند إضافة تصنيف. المستويات يساعد القسم السابق على توزيع الدورات تبعًا لطبيعة المحتوى الذي تقدمه وتحت أي مُسمى يندرج ولكن هذا القسم يُساعد في تصنيف الدورات بناءً على صعوبتها وهل يجب على المُتعلم أن يمتلك معرفة سابقة في مجال الدورة أم لا وإن كان الجواب نعم فما مدى عمق هذه المعرفة. ستجد أربع مستويات هي "مبتدئ" و"متوسط" و"محترف" و"كل المستويات" وبالطبع يُمكنك إضافة ما تشاء من مستويات او تعديل المستويات الحالية بنفس الطريقة التي تعاملت بها مع التصنيفات تمامًا. الواجبات تُصنف الواجبات كلٌ أسفل الدورة التابعة لها كما هو مُوضح في الصورة التالية ويظهر عنوان الواجب ومحتواه واسم المحاضر وعدد الطلاب الذين سلموا الواجب. لعرض معلومات الطلاب الذين سلموا الواجب يجب الضغط على عنوان الواجب أو النقاط الثلاث من الجهة اليسرى للواجب واختيار "عرض". سوف تظهر لك الآن صفحة تعرض معلومات الطلاب الذين سلموا الواجب وتاريخ التسليم وحالة الواجب هل هو قيد المراجعة أم مقبول أم مرفوض إضافة إلى الرسالة التي أُرسلت للطالب. المنتجات تستطيع هنا إضافة منتجات ترغب في ترويجها وبيعها لطلابك ولكن بشرط أن تكون منتجات رقمية. ملاحظة: تسمح لك باقة المعلم بإضافة 7 منتجات كحد أقصى ولكن في باقتي المدرسة والأكاديمية فالعدد غير محدود. لإضافة منتج لأكاديميتك في منصة مساق، عليك بدايةً الضغط على خيار "اضف جديد" الموجود في الجهة اليسرى من الصفحة. عليك الآن إدخال اسم المنتج واسمه ضمن الرابط (يُسمح باستخدام حروف وأقام وشرطة "-" فقط) إضافة إلى السعر (الذي يجب على الطالب دفعه) كما يُمكنك إضافة سعر المقارنة (السعر قبل التخفيض ويجب أن يكون أعلى من حقل السعر). أيضًا يجب عليك إضافة صور للمنتج لأن عملية بيع منتج لا يستطيع الطالب تصور شكله أو فهمه سوف تكون أصعب، بعد ذلك عليك إضافة ملفات المنتج وهي الملفات ذات القيمة والتي يدفع الطالب للحصول عليها ولن تظهر قبل شراء الطالب للمنتج وإتمام عملية الدفع. يجب عليك إضافة وصف للمنتج لتحسين ظهوره في محركات البحث وجذب زيارات له عبر محركات البحث لتبقى أمامك خطوة واحدة وهي الضغط على "حفظ البيانات" لتتم إضافة المنتج لأكاديميتك كمسودة. لتنتقل للخطوة الثانية عليك العودة لبداية الصفحة حيث تظهر الآن ثلاث خطوات هي "المعلومات" و"التخصيص" و"نشر المنتج". اضغط على "التخصيص". أدخل رسالة ما بعد الشراء والتي تصل للطالب بعد شرائه المنتج من أكاديميتك ثم اضغط على "حفظ البيانات" لتُحوَّل بعد ذلك للخطوة الأولى. حيث عليك العودة لأعلى الصفحة والضغط على "نشر المنتج". اختر الآن حالة ظهور المنتج "مسودة" أو "غير مدرجة" أو "منشور (عام)". الحالة الأولى لا يظهر فيها المنتج إلا ضمن لوحة تحكم الأكاديمية ولا يمكن لأي طالب الوصول لها أما في الحالة الثانية فإن المنتج موجود ضمن الأكاديمية ولكن غير ظاهر للطلاب أو لأي أحد لا يمتلك رابط المنتج. الحالة الأخيرة وهي الحالة العامة التي يظهر فيها المنتج ضمن الأكاديمية ويمكن لجميع الطلاب الوصول له وشراؤه. بالعودة إلى صفحة المنتجات سوف تجد المنتج الذي أضفته مع كافة معلوماته. عليك الضغط على عنوان المنتج لمعرفة من قام من الطلاب بشرائه وتاريخ الشراء. الصورة التالية توضح كيف تظهر صفحة المنتج ضمن الأكاديمية. المقالات أحد أكثر الطرق فعالية للترويج لمنتجاتك ودوراتك سواء كانت الأكاديمية تعمل على نطاق فرعي لنطاق خاص بك (الخيار الأفضل) أو بنطاق تابع لمساق هي من خلال محركات البحث والكلمات المفتاحية التي تُمكنك المقالات من استهدافها وجذب الزوار عبر محركات البحث. هذه العملية ليست بسيطة أو سهلة أو سريعة ولكنها مُستدامة فعند كتابتك لمقال يُركز على كلمة مفتاحية مرتبطة بأحد منتجاتك أو دوراتك وظهوره في الصفحات الأولى لمحركات البحث، سوف يجذب العديد من الزيارات المجانية والمُستمرة طالما تصدر المقال نتائج صفحات البحث. طبعًا إن كتابة مقال وتصدره الصفحات الأولى ليس بالأمر السهل ولكن إن كنت في بداية عملية الترويج لأكاديميتك فهو أوفر من الناحية المالية عند مقارنته بإعلانات جوجل أو فيس بوك أو تويتر. إن أردت إضافة مقال لأكاديميتيك في منصة مساق، توجه إلى قسم "الكل" في قسم "المقالات" من القائمة الجانبية ثم اضغط على الخيار "أضف جديد" الموجود الجهة اليسرى من الصفحة. الآن عليك إدخال عنوان المقال ومحتواه واختيار الناشر من الطاقم الإدراي الخاص بأكاديميتك إلى الوصف والكلمات المفتاحية والتي تساعد على تصدر المقال في الصفحات الأولى لمحركات البحث. عند الانتهاء مما سبق يوجد لديك أحد خيارين إما "حفظ في المسودات" أو "النشر". انتقل الآن لصفحة "الكل" التي تعرض المقالات الموجودة لديك لتجد المقال التي عرضتها ظاهرة بالصورة البارزة التي اخترتها والتصنيف الخاص بها (رقم 1). يمكنك الضغط على النقاط الثلاث (رقم 2) لتعديل أو حذف المقال وتظهر حالة المقال "تم النشر" وتاريخ النشر أسفل عنوان المقال. إضافة التصنيف للمقالات مشابه تمامًا للطريقة التي أضفت فيها التصنيفات للدورات سابقًا. التعليقات هذا القسم مسؤول عن عرض التعليقات التي يكتبها القارئ لمقالات التي تنشرها ضمن المدونة الخاصة بأكاديميتك وتستطيع عرض هذا التعليق (أي مشاهدته وليس السماح بظهوره) أو حذفه ولكن لا يمكن التعديل عليه وهذا أمر جيد ويعني أن التعليقات الموجودة ضمن أكاديميتك هي تعليقات حقيقية وغير مُعدلة حيث تسمح بعض المنصات الأخرى لمدير الموقع بتعديل التعليقات ضمن الموقع. التقييمات التقييمات هي الانطباع الذي يُعبر عنه الطالب بعد إنهائه لدورتك وبالطبع الإنطباعات الإيجابية هي ما تصبو له حيث تُساعد التقييمات الإيجابية على جذب المزيد من الطلاب إذ تُصبح الدورة موثوقة بالنسبة لهم بعد قراءة تجربة من سبقهم من طلاب. تستطيع قراءة التقييمات التي حصلت عليها دوراتك ضمن المنصة، أيضًا تستطيع حذفها إن أردت ولكن لا يوجد إمكانية للتعديل. القسائم سوف تكون القسائم عاملًا أساسيًا في عملية التسويق للدورات خصوصًا في مرحلة إطلاق الأكاديمية، حيث تستطيع التواصل مع مدير موقع إلكتروني أو صفحة فيس بوك وطلب الترويج لدوراتك عبر منصاتهم مقابل حصولهم على حسم خاص لزوارهم. قد لا تتم هذه الصفقة مع المنصات القوية ولكنها فعالة مع المنصات التي تسعى للترويج لنفسها أيضًا والتطور لتصبح أقوى في مجالها وهنا يجب ألا تنسى أن مجال عمل المنصة التي تريد منها الترويج لك يجب أن يكون قريب لمجال الدورات التي تريد جذب طلاب لها على أكاديميتك. لإضافة قسائم لأكاديميتك على منصة مساق، عليك أولًا التوجه إلى صفحة "القسائم" ضمن القائمة ثم الضغط على خيار "اضف جديد". الآن عليك ملء الحقول بالمعلومات المطلوبة ويجب الانتباه إلى أن اسم القسيمة يجب أن يكون بدون فراغات وتستطيع استخدام الحروف والأرقام وإشارة "_" فقط. يوجد نوعان للخصم إما باستخدام نسبة مئوية أو قيمة ثابتة، عند اختيار القيمة الثابتة ووضع قيمة 20 في حقل "نسبة الخصم/القيمة" سوف يتم خصم 20$ (باعتبار العملة هي دولار) من قيمة الدورة أما إذا اخترت "نسبة مئوية" فسوف يتم خصم 20% من قيمة الدورة وهي ما أفضله عند استخدام القسائم لاختلاف أسعار الدورات حيث تُصبح قيمة 20 قليلة بالنسبة للدورات ذات القيمة المرتفعة والعكس صحيح. انتقل الآن لتحديد تاريخ انتهاء صلاحية القسيمة حيث لا يمكن للطلاب الاستفادة من هذه القسيمة بعد مضي التاريخ المُحدد هنا، ثم عليك تحديد "حد الاستخدام الكلي" و"حد الاستخدام لكل مُستخدم" حيث تكون القيمة غير محدودة عند الإبقاء على هذه الحقول فارغة ولكن عادة يتم تحديد الحقل الثاني بقيمة 1 لكي يتم استخدام القسيمة مرة واحدة من قبل نفس الطالب أما الحقل الأول فتتغير قيمته حسب اتفاقك مع مدير المنصة التي ستروج لك أو حسب العرض الذي نشرته على صفحات التواصل الاجتماعي الخاصة بك مثل الإعلان عن حسم بقيمة 20% لأول 100 طالب يقوم بالشراء من أكاديميتك باستخدام هذه القسيمة. الخطوة الأخيرة هي الضغط على "حفظ البيانات" والعودة إلى صفحة "القسائم" للتأكد من أن القسيمة قد تمت إضافتها. تستطيع حذف القسيمة أو تعديلها إن أردت بعد إضافتها. لمتابعة من استخدام القسيمة تستطيع الضغط على اسم القسيمة ليتم تحويلك لصفحة جديدة تعرض بيانات أسماء المُستفيدين من القسيمة وعدد مرات الاستخدام وعدد مرات الاستخدام المتبقية. الهوية والألوان تستطيع هنا تغيير شعار الأكاديمية والأيقونة المُصغرة التي تظهر في لسان المتصفح من أعلى، بالإضافة لإمكانية اختيار الصورة التي تظهر عند مشاركة رابط أكاديميتك ضمن وسائل التواصل الاجتماعي. توفر منصة مساق عددًا من الخطوط العربية والتي تستخدمها أكاديميتك في القائمة ونص المقال وعناوين الدورات. تستطيع التحكم بالألوان الخاصة بأكاديميتك وألوان العناوين والنصوص للتناسب مع الألوان المستخدمة بتصميم شعار الأكاديمية. الصفحات هذا القسم مفيد جدًا إن كنت لا تملك نطاقًا واستضافة خاصة بك وبالتالي فأنت تستعمل نطاق فرعي من مساق لأكاديميتك لذلك يجب أن تكون قادرًا على إنشاء صفحات مثل سياسة الخصوصية وشروط الاستخدام وسياسة إرجاع الأموال. سوف تجد أربع صفحات عند إنشاء الأكاديمية هي "من نحن" و"شروط الاستخدام" و"سياسة الخصوصية" و"الصفحة الرئيسية". تستطيع تعديل وحذف أي صفحة إلا الصفحة الرئيسية حيث تستطيع تعديلها فقط دون حذفها وهي الصفحة التي تظهر فيها دوراتك ومنتجاتك ومقالاتك. ملاحظة: تستطيع إضافة 7 صفحات ضمن باقة المعلم و25 صفحة ضمن باقة المدرسة وعددًا غير محدود ضمن باقة الأكاديمية. إن أردت إضافة صفحة لأكاديميتك على منصة مساق، اضغط على "أضف جديد": أختر الآن اسم الصفحة والكلمات الظاهرة في الرابط ثم مكان إضافة الصفحة (إلى القائمة العلوية "الهيدر" أم إلى أسفل الموقع "الفوتر"). أضف محتوى للصفحة من خلال الضغط على "أضافة عنصر" ليظهر لك قائمة جانبية تحتوي العديد من الخيارات أذكر منها "المنتجات" و"المقالات" و"الأسئلة الشائعة". تستطيع البحث عما يناسبك وإضافته فقط بالضغط عليه، ولإكمال المثال سوف أختار "نص مع صورة". سوف تتم إضافة العنصر للصفحة، لاحظ الأيقونة المُحاطة بالمستطيل الأحمر تسمح لك بسحب وإفلات العنصر لتغيير ترتيبه ضمن الصفحة أما النقاط الثلاث الموجودة على اليسار تتضمن قائمة ذات خيار واحد فقط هو حذف العنصر. لكن كيف سأقوم بإضافة النص والصورة؟ يجب الضغط على عبارة "نص مع صورة" الموجودة ضمن العنصر لتظهر قائمة منسدلة من العنصر تتضمن حقول المحتوى والتصميم. يتضمن قسم المحتوى بضعة حقول هي العنوان والمحتوى ورابط الصورة (تستطيع رفعها للموقع) وتموضع الصورة بالنسبة للنص. أما القسم الآخر أي المحتوى فيتضمن حقولًا مثل لون الخلفية واختيار صورة للخلفية ولون النص ومحاذاته، تستطيع إضافة كود CSS إن كان لديك بعض الخبرة للتعديل على شكل العنصر. عند الانتهاء مما سبق يجب الضغط على "حفظ البيانات" لحفظ ما سبق من تعديلات وعناصر ضمن الصفحة. تستطيع إضافة العدد الذي تريده من عناصر للصفحة وتعديل ترتيبها حسب ما تراه مناسبًا. ننصحك لمزيد من المعلومات والتفاصيل الرجوع إلى دليل تعديل تصميم صفحات الأكاديمية من قسم التصميم والمظهر الذي توفره منصة مساق في مركز مساعدتها. الإعدادات يوفر هذا القسم إمكانية التحكم بالأكاديمية من كلمات مفتاحية ووصف وعنوان البريد الإلكتروني الذي تصل له التنبيهات وتخصيص رسائل البريد الإلكتروني التي تصل للطلاب إضافة إلى تصميم قوالب الشهادات التي تُمنح للطالب بعد النجاح في الدورة (بشرط كانت الدورة تتضمن شهادة). عام تستطيع من هنا تغيير عنوان الأكاديمية والعنوان الفرعي إضافة إلى البريد الإلكتروني الذي يستقبل تنبيهات المنصة. يُمكنك أيضًا إضافة كلمات مفتاحية ووصف للأكاديمية لمُساعدتك على الظهور ضمن نتائج محركات البحث، كما تستطيع ربط المنصة بمنصات التواصل الاجتماعي التابعة لأكاديميتك. قسم التخصيص الأخير يُستخدم لتغيير العملة المُستخدمة لعرض أسعار الدورات والتحكم بطريقة التسجيل ضمن أكاديميتك إضافة إلى ميزة تقييد الدخول لأكاديميتك من خلال جهاز واحد فقط. يوجد طريقتان لتسجيل الدخل ضمن الأكاديمية الطريقة الأولى وهي الافتراضية وسهلة الاستخدام تسمح للطالب بالتسجيل عبر تقديم عنوان بريده الإلكتروني ليتم إرسال بريد يتضمن معلومات الدخول مع رابط سريع وهذا يوفر عناء العملية التقليدية في التسجيل وتأكيد البريد الإلكتروني. عند تفعيل الخيار لاستخدام آلية التسجيل التقليدية سوف يحتاج الطالب لإدخال عنوان البريد الإلكتروني وكلمة مرور وتأكيد بريده. افتراضيًا فإن ميزة تقييد الدخول غير مُفعلة وعند تفعيلها عليك تنبيه الطلاب كي لا يقعوا في حيرة من أمرهم إن حاولوا تسجيل الدخول من حاسب مُختلف أو هاتف ذكي مُختلف عن الجهاز الذي سجلوا فيه أول مرة. الرسائل البريدية هذا القسم مُخصص للإطلاع على رسائل البريد الإلكتروني المُعدة مُسبقًا والتي تصل للطالب عند تسجيله في الأكاديمية أو دورة معينة. تستطيع عرض وتعديل هذه القوالب من هنا وهما قالبنا فقط لتفعيل الحساب والالتحاق بالدورة ولتتعرف على كيفية استخدام الوسوم الموجودة عند تعديل القالب اطلع على الخطوة الثالثة من كيفية إضافة دورة لأكاديميتك في منصة مساق. قوالب الشهادات يوجد شهادة افتراضية عند إنشاء حساب أكاديمية على منصة مساق. تستطيع تخصيص القوالب فقط في باقتي المدرسة والأكاديمية أما باقة المُعلم فهذا غير متوفر. لإضافة قالب شهادة لأكاديميتك في منصة مساق، أولا عليك الضغط على خيار "أضف جديد": الآن عليك إدخال اسم قالب الشهادة واستخدام الحقول في قسم المحتوى لتغيير الكلام المكتوب ضمن الشهادة وانتبه هنا مثلًا عند تغيير "تاريخ إصدار الشهادة" فأنت لا تغير التاريخ بل تُغير العبارة المكتوبة فوق التاريخ بينما التاريخ واسم الطالب وما شابه من أمور تتم إضافتها تلقائيًا للشهادة عند إتمام الطالب للدورة. بعد الإنتهاء من تعديل المحتوى تستطيع الانتقال لتعديل التصميم من خلال اختيار لون ونوع للخط وتغيير الشعار الظاهر على القالب وصورة خلفية الشهادة. ملاحظة: عملية التخصيص هذه متاحة فقط في باقتي المدرسة والأكاديمية. اضغط على "حفظ البيانات" بعد الانتهاء من التعديل. التكامل تستطيع في هذا القسم إدارة وسائل الدفع وربط أكاديميتك مع أدوات التحليل المختلفة مثل جوجل أناليتكس Google Analytics وGoogle Tag Manager إضافة لربطها بمنصات للتسويق مثل سناب شات SnapChat وفيس بوك وميل شيمب MailChimp. يوجد تبويبان في هذا القسم الأول هو "الكل" يتضمن جميع ما سبق ما عدا وسائل الدفع الالكتروني وهو عنوان التبويب الثاني. الكل لجمع معلومات عن زوار وطلاب الأكاديمية لا بد من الاستعانة بجوجل أناليتكس لذلك عليك إنشاء حساب عليه ثم نسخ كود التتبع ولصقه في المكان المخصص وتفعيل عمله من صفحة "التكامل" للأكاديمية ثم الضغط على "حفظ البيانات". سوف تحتاج أيضًا لأداة Google Tag Manager عند بدء حملات التسويق لأكاديميتك عبر جوجل وذلك لمعرفة العدد الدقيق للزوار الذين دخلوا أكاديميتك بسبب إعلان جوجل مثلًا. تستطيع إضافة هذا الكود باتباع نفس الطريقة السابقة لكود جوجل أناليتكس. يُمكنك أيضًا التسويق لأكاديميتك من خلال منصتي فيس بوك وسناب شات لذلك عليك لصق Pixel ID الخاص بحسابك على منصة فيس بوك ومنصة سناب شات في المكان المخصص وتفعيلهما ثم حفظ البيانات. التسويق باستخدام البريد الإلكتروني هو طريقة قديمة ولكنها فعالة إلى الآن. توفر منصة مساق تكاملية مع منصة ميل شيمب لذلك لاستخدام ميزات ميل شيمب عليك إنشاء حساب عليها ثم إنشاء قائمة بريدية مع API Key وإدخال البيانات اللازمة هنا. أداة المساعدة Zapier متوفرة فقط في خطة المدرسة والأكاديمية وربطها مع الأكاديمية بسيط وسهل وسوف أشرح لك الخطوات الأولى التي أستطيع الوصول لها ثم سوف أرفق مقطع فيديو يشرح باقي الخطوات بالتفصيل الممل. أولا عليك الضغط على زر "التطبيق على Zapier" والذي سوف يفتح نافذة جديدة في المتصفح لموقع Zapier، يجب أن يكون لديك حساب سابق على الموقع. اضغط الآن على الأيقونة المحاطة بالمستطيل الأحمر لاختيار تطبيق وربطه مع تطبيق مساق على Zapier. سوف أختار التطبيق الأول والذي يسمح لي بإرسال بريد إلكتروني لمشتركي أكاديميتي عبر جيميل. عند الضغط على خيار "Try It" سوف تظهر لك الصفحة التالية. اضغط الآن على خيار "Sign in to Msaaq" لتظهر لك نافذة منبثقة تطلب منك إدخال API Key ونطاق الأكاديمية والتي تجلبه من صفحة التكامل في أكاديميتك. لمتابعة خطوات الربط بالتفصيل الممل وبشكل عملي، يمكنك الانتقال إلى هذا الفيديو. ربط الأكاديمية مع تطبيق Zapier سيسمح بأتمتة عدة مهام وربط الأكاديمية مع عدة تطبيقات، لذا ننصحك بالاطلاع على العملية للاستفادة منها. وسائل الدفع يوجد العديد من وسائل الدفع التي تستطيع تضمينها لأكاديميتك وهي حتى الآن: الحوالة البنكية وبادّل Paddle وسترايب Stripe وبيلينك PayLink وتاب Tap Payments وهايبرباي HyperPay وباي بال PayPal. كل وسيلة دفع لها ميزة مختلفة فمثلُا يُمكنك قبول الحوالات البنكية على افتراض أن طلابك يعيشون في نفس الدولة ومن السهل وغير المُكلف استعمال الحوالات البنكية فيه ولكن إن كنت تستهدف طلابًا خارج النطاق الجغرافي لدولتك فسوف تحتاج طريقة دفع أخرى مثل باي بال أو وسائل الدفع الأخرى التي تقبل بطاقتي فيزا وماستركارد. لتفعيل أي من طرق الدفع السابقة يجب عليك الضغط على مفتاح التفعيل الموجود بجانب كل وسيلة دفع ولكن قبل ذلك عليك ضبط الإعدادات وتحقيق الشروط الخاصة بكل وسيلة دفع. لإضافة حساب بنكي لاستقبال الحوالات عليه، أولًا يجب عليك الضغط على الإعدادات الخاصة بها لتظهر لك صفحة مماثلة للصورة التالية. اتبع ترتيب الخطوات المُوضح في الصورة وأضف ما تريد من حسابات بنكية. تحتاج معلومات مختلفة بالنسبة لبادّل مثل Vendor ID و Auth Code و Public Key تجلبها من معلومات حسابك في بادل المراد ربطه مع الأكاديمية. يجب عليك التواصل مع مزودي بوابات الدفع السابقة للاطلاع على الشروط التي يجب عليك تحقيقها لتتمكن من استخدام خدماتهم أما بالنسبة لباي بال فيجب عليك أن تمتلك حساب عمل عمل Business account لأن الحساب الشخصي لن يفي بالغرض. يمكنك الانتقال إلى صفحة بوابات الدفع التي توفرها منصة مساق للاطلاع على تفاصيل مفصلة حول كيفية ربط الأكاديمية بمختلف طرق الدفع المتوفرة. كيفية إضافة دورة لأكاديميتك في منصة مساق يجب عليك قراءة التصنيفات والمستويات لإضافة التصنيفات والمستويات المناسبة للدورة قبل البدء بإنشائها، بعد ذلك عليك التوجه إلى قسم الدورات والضغط على "الكل" ثم انقر على "أضف جديد". الخطوة الأولى: معلومات الدورة يجب عليك في هذه الخطوة ملء عدة أقسام بمعلومات هامة وهي حسب ترتيب ظهورها "عن الدورة" و"تصنيف الدورة" و"متطلبات الدورة" و"الوصف" و"الملفات" و"التخصيص" و"محركات البحث". ملاحظة: جميع الحقول التي تملك إشارة "*" بجانبها هي ضرورية ولا يمكن الانتقال للخطوة الثانية بدون كتابة المحتوى الصحيح فيها. عن الدورة: يتضمن عنوان الدورة الذي تستطيع كتابته بأي لغة والاسم الظاهر في الرابط (أستخدم أحرف وأرقام و"-") والمدة التي يحتاجها الطالب لإتمام الدورة بالساعات والدقائق. سعر الدورة: يوجد مربعين لإضافة السعر هما "السعر" و"سعر المقارنة"، الأول هو السعر الحقيقي الذي سوف تُباع فيه الدورة أما الثاني فهو السعر السابق للدورة أي ما قبل التخفيض لذلك يجب أن يكون "سعر المقارنة" دائمًا أكبر من "السعر". تصنيف الدورة: يتضمن التصنيف والتصنيف الفرعي إن وُجد والمستوى للدورة وكما نوهت سابقًا يجب عليك إضافة هذه القيم قبل البدء بإنشاء الدورة كي تستطيع إضافتها للدورة أثناء عملية الإنشاء. الوصف: مُنقسم إلى "ملخص الدورة" وهو الوصف الموجز للدورة والذي يتضمن الأفكار الرئيسية، و"الوصف الكامل للدورة" والذي يتضمن شروط التسجيل بالدورة والخبرات السابقة اللازمة ولمن هي موجهة وما هي المهارات الجديدة التي سوف يكتسبها الطالب، لديك الحرية المطلقة بما تود كتابته في هذا القسم. الملفات: تتضمن الصورة البارزة والتي تظهر للطالب قبل التسجيل بالدورة، يجب أن تكون مُعبرة عن جوهر الدورة وذات تصميم جذاب. التخصيص: يجب عليك اختيار تصميم صفحة هبوط الدورة وقالب الشهادة المستخدم لتوليد الشهادات للطلاب الذين يُنهون الدورة بمعدل النجاح. سوف أتوسع في شرح هذين القسمين لاحقًا. محركات البحث (SEO): يتضمن الوصف الذي يظهر أسفل الرابط عند ظهور رابط الدورة في نتائج البحث لمحركات البحث والكلمات المفتاحية تُساعد محركات البحث على إظهار رابط الدورة للزوار الذين يستخدمون هذه الكلمات المفتاحية. هل انتهيت من ملء الحقول؟ نعم. إذًا عليك بالضغط على "حفظ البيانات" والانتقال للخطوة الثانية. الخطوة الثانية: إضافة المواد عليك هنا إضافة أقسام الدورة والمواد التعليمية من نصوص ومقاطع فيديو ومقاطع صوتية واختبارات وواجبات. أولًا، اضغط على خيار "أضف قسم جديد". سوف تظهر لك الآن نافذة منبثقة تطلب منك إدخال اسم القسم وذلك ضمن تبويب "معلومات القسم" كما هو مُبين في الصورة التالية. أما التبويب الثاني "المحتوى التدريجي" يتضمن كيفية السماح للطالب بالوصول لمحتويات القسم وهي بالحالة الافتراضية غير مُفعلة ولتفعيلها عليك الضغط على المفتاح بجانب الرقم 1. يوجد خياران لتفعيل القسم وذلك بعد عدد أيام مُحدد ضمن خيار "تفعيل القسم بعد" أما بالنسبة لتاريخ حساب هذه المدة تستطيع الاختيار بين أحد خيارين إما "من تاريخ بدء المشاهدة" أي عند الدخول للقسم أو "من تاريخ الالتحاق" أي بعد التسجيل في الدورة. ملاحظة: عند تفعيل أحد الخيارين يتم تعطيل الخيار الآخر. شخصيًا أجد هذه الخيارات غير كافية للمحتوى التدريجي، فكان الأفضل لو أستطيع تفعيل القسم التالي بناء على اختبار في القسم السابق أو بناء على متابعة القسم السابق وليس من خلال فترة زمنية تُحتسب بدءًا من تاريخ الالتحاق بالدورة أو التوجه للقسم. سوف يتم إرسال إشعار بريد الكتروني للطالب عند تفعيل القسم لذلك عليك اختيار موضوع هذا الإشعار ومحتواه كما هو مُوضح في أسفل الصورة ثم اضغط على "حفظ البيانات". يظهر الآن القسم الذي أضفته والذي لا يتضمن أي مادة تعليمية حاليًا وهذا ظاهر من عدد المواد أسفل اسم القسم (رقم 1)، اضغط الآن على خيار "اضافة مادة" للبدء بملء القسم بالمادة التعليمية. سوف تظهر لك قائمة صغيرة عند الضغط على "اضافة مادة" تتضمن الخيارات المُمكن استخدامها وهي "فيديو" و"اختبار" و"نص" و"صوت" و"واجب". إضافة فيديو اضغط على "فيديو" وسوف تظهر لك نافذة منبثقة لإدخال معلومات الفيديو مثل "العنوان" ومصدر الفيديو، هنا يوجد لديك خياران إما أن يكون الفيديو موجود على يوتيوب أو فيميو وبالتالي له رابط تستطيع لصقه في الحقل أو يُمكنك رفع الفيديو بشكل مُباشر من حاسوبك. عليك الآن إدخال مدة الفيديو بالساعات والدقائق (إجباري) إضافة إلى ملخص عن محتوى الفيديو يُعطي الطالب فكرة عما سوف يُشاهده. تستطيع إضافة ملفات مرفقة للفيديو مثل ملف إلكتروني PDF أو نصي Microsoft Word، ربما تكون قائمة بمراجع يُمكن للطالب الاطلاع عليها أو ملف يحتاج الطالب لإكماله كجزء من واجب في نهاية القسم. يُمكن تقديم الدورة من قبل عدة مُدرسين لذلك يوجد خيار لاختيار مُحاضر المادة وبما أني لم أضف أي مُدرس فحسابي الافتراضي سوف يكون الخيار الوحيد المُتوفر. الصلاحيات تسمح لك باختيار من يُمكنه مشاهدة المادة، "المشترك بالدورة" أم "أي شخص" وهذا مفيد من الناحية التسويقية وغالبًا يتم السماح لأي شخص بمشاهدة محتويات القسم الأول والذي يكون مقدمة للدورة لتُساعد الطالب على اتخاذ قرار شراء الدورة. انتهيت من إدخال معلومات الفيديو وبقي الضغط على "حفظ البيانات" لتتم إضافته لقسم "أساسيات الحاسوب وعلومه". أُضيفت الآن مادة جديدة للقسم، يظهر اسم المادة وجزء من الملخص ومدة الفيديو وإلى اليمين (رقم 1) عبارة عن زر للسحب والإفلات لتغيير ترتيب المادة ضمن القسم. إلى اليسار (رقم 2) يوجد ثلاث نقاط عند الضغط عليها تظهر قائمة بخيارين هما التعديل والحذف. انتبه لعدد المواد الذي تغير (رقم 3) أسفل اسم القسم. إضافة نص اضغط مرة ثانية على "إضافة مادة" واختر "نص" لتظهر لك نافذة منبثقة تطلب منك ادخال "العنوان" و"الملخص" و"المرفقات" إن وجدت. لا يظهر في الصورة كامل محتويات النافذة ولكن المتبقي هو "محاضر المادة" و"الصلاحيات" مماثلة لإضافة الفيديو. لا تنس الضغط على "حفظ البيانات" لإضافة هذه المادة للقسم. إضافة صوت أعد الخطوات السابقة ولكن هذه المرة لإضافة صوت، لتلاحظ الاختلاف عن الفيديو أنك تستطيع فقط رفع ملفات صوتية (رقم 1) ولا يُمكن تضمينها من منصة أخرى كما هو حال الفيديو كما أن الصيغ المدعومة (رقم 2) مُحددة ويجب عليك الالتزام بها. ما تبقى من أقسام النافذة المنبثقة لإضافة الصوت مشابه لإضافة الفيديو وعليك الضغط على "حفظ البيانات" لحفظ المادة وإضافتها للقسم. إضافة اختبار اضغط على "أضف مادة" ثم اختر "اختبار" لتظهر لك نافذة منبثقة جديدة مختلفة عن السابقات، عليك كتابة "عنوان الاختبار" واختيار معدل النجاح لاجتياز الاختبار من قائمة مُعدة مسبقًا، أي لا تستطيع اختيار المعدل الذي تريد بل التقيد بما هو موجود. ثم تفعيل أو تعطيل خيار "ترتيب الأسئلة بشكل عشوائي" بحيث تظهر لكل طالب بترتيب مختلف. يوجد سؤال سلفًا عند إضافة اختبار والذي لا يمكن حذفه لأن الحد الأدنى لعدد الأسئلة ضمن الاختبار هو واحد. يجب إدخال السؤال ضمن حقل "عنوان السؤال" ثم إضافة شرح ليسهل فهم السؤال وطريقة الإجابة عليه ضمن حقل "شرح السؤال". يوجد نوع واحد من الأسئلة فقط وهو الاختيار من مُتعدد، لذلك عليك إضافة عدة أجوبة بالضغط على "جواب جديد" ثم إدخال "الإجابة" واختيار الإجابة الصحيحة (يمكن اختيار إجابة واحدة صحيحة فقط). بعد الانتهاء من إدخال السؤال يُمكنك الضغط على "أضف سؤال" لإضافة سؤال جديد بنفس الآلية السابقة، ولا يوجد حد واضح لعدد الأسئلة الأعظمي كما أن توزيع الدرجات بين الأسئلة يكون تلقائيًا من خلال تقسم الرقم 100 على عدد الأسئلة. إن كان لديك 20 سؤالًا ضمن الاختبار فإن 100/20 يساوي 5 وبالتالي كل سؤال له 5 درجات. الأقسام المتبقية هي الصلاحيات واسم المحاضر، يمكن اختيارها بنفس الآلية التي اتبعتها في إضافة الفيديو. إضافة واجب إضافة الواجب مشابهة لإضافة النص مع إمكانية إضافة مقطع فيديو لها وفي هذا القسم تُسند للطالب ما عليه القيام لاجتياز القسم فربما يجب عليه إعداد بحث صغير عن أمر معين أو ربما عليه كتابة برنامج بسيط بلغة برمجة معينة. أيًا كان الواجب فإن آلية إضافته بسيطة للغاية وتتم متابعته من قسم الواجبات في لوحة التحكم. بعد إضافة عدة مواد سوف يظهر القسم بالشكل التالي: تستطيع إعادة ترتيب المواد ضمن القسم، حذف المادة التي تريد أو تعديلها أو إضافة مادة جديدة. تستطيع في أي وقت تعديل القسم أو حذفه مع أو بدون المواد الموجودة ضمنه من خلال الضغط على النقاط الثلاث المتواجدة بجانب اسم القسم كما هو موضح في الصورة. أستطيع إضافة المزيد من الأقسام ولكن الهدف من هذا المقال هو تعليمك آلية الإضافة لذلك سوف أنتقل الآن للخطوة التالية بالضغط على خيار "الخطة التالية". الخطوة الثالثة: إطلاق الدورة إن كنت مدربًا مشهورًا ولديك جمهورك، تستطيع إنشاء دورة مؤلفة من قسم واحد والسماح للطلاب بالتسجيل فيها قبل انتهائك من إعدادها من خلال تفعيل الخيار (رقم 1) أو ربما إن كنت تريد الترويج مسبقًا للدورة وتحتاج القسم الأول فقط في هذه المرحلة. عند شراء الطالب للدورة سوف تصله رسالة لبريده الالكتروني، تستطيع كتابة ما تريد فيها واستخدام المتغيرات (رقم 2) ضمن البريد لعرض عنوان الدورة ورابط الدورة والبريد الإلكتروني للأكاديمية كما هو موضح في المثال ضمن الصورة. هل تريد تقديم شهادة للطالب في هذه الدورة؟ هل يجب عليه مشاهدة الدورة كاملة للحصول على الشهادة وهل يجب عليه أيضًا اجتياز جميع الاخبتارات؟ تفعيل الخيار الأول في قسم الشهادة يتيح لك تفعيل الخيارين الآخرين. اطلع على كيفية إضافة قالب شهادة لأكاديميتك في منصة مساق. الخيارات الموجودة ضمن قسم التخصيص واضحة وهي تسمح لك بتفعيل التقييم للدورة للطلاب بعد انهاء الطالب لها إضافة إلى إظهار عدد الطلاب الملتحقين بالدورة وهو أمر إيجابي بعد التحاق عدد جيد من الطلاب بدورتك ولكن ربما تريد تعطيل هذا الخيار في البداية. تستطيع عرض اسم المحاضر ومعلوماته في صفحة المادة وهو أمر مفيد في حال قدم الدورة عدة مُدرسين. تستطيع أيضًا تفعيل التعليقات على الدورة وإيقافها بعد مدة عند جمع ما يكفي من تعليقات إيجابية تُساعدك على جذب المزيد من الطلاب. تتطلب الدورة متابعة مستمرة مع الطلاب وفي حال كنت مُنشغلًا ولا تستطيع ذلك يُمكنك إيقاف التسجيل على الدورة للطلاب الجدد، سبب آخر لذلك قد يكون تحديث محتوى الدورة ولا تريد لطالب أن يتفاجأ بمحتوى مختلف عن حين تسجيله. الخيار الأخير بتفعيله فأنت تسمح للطالب بإرسال واجب جديد عند رفض القديم وتعطيله يمنعه من ذلك. وصلت الآن للقسم الأخير من الخطوة الثالثة وهي حالة الدورة ولها ثلاث خيارات ممكنة إما "مسودة" (تُستخدم عند بناء الدورة وتطويرها) ولا يمكن لأي شخص التسجيل فيها وتظهر لك فقط في لوحة التحكم. الحالة الثانية "غير مدرجة" أي لا تظهر ضمن موقع الأكاديمية ولكن يستطيع من الطلاب من يملك رابط الدورة الالتحاق بها. الحالة الأخيرة "منشورة (عام)" وهي الحالة التي تختارها عند انتهائك من تجهيز الدورة وتريد إظهارها على موقع الاكاديمية ليستطيع من يريد التسجيل فيها، وهذا ما اخترته لدورتي. ملاحظة: لا يمكن اختيار سوى حالة واحدة والتي عند تفعيلها تُلغي تلقائيًا تفعيل الحالتين الأخريين. اضغط الآن على "حفظ التعديلات". الخطوة الرابعة: مشاركة الدورة تظهر بعض معلومات الدورة في هذه الخطوة من الحالة ورابط الدورة إضافة إلى وجود خيارين سريعين لمشاركة الدورة عبر تويتر أو فيس بوك. خاتمة انتهى دوري الآن مع انتهاء هذا المقال وأصبحت أنت المسؤول وفي يديك الأدوات الكافية لتحقيق تغيير في المستقبل. تحدثت في هذه المقال عن منصة مساق وكيفية إنشاء حساب عليها والأقسام المختلفة لهذا الحساب. انتقلت بعد ذلك للغوص في تفاصيل حساب الأكاديمية خطوة بخطوة ليتكون لديك فكرة شاملة عن المزايا والأدوات التي تُقدمها منصة مساق حيث شرحت كيفية إضافة دورة وكيفية إضافة منتج مع متابعة التعليقات والتقييمات التي تكسبها من طلابك. تطرقت أيضًا للقسائم وآلية إضافتها ومتابعة مُستخدميها، وكيفية تخصيص هوية الأكاديمية باختيار شعارها والألوان ونوع الخطوط المُستخدم. النهاية كانت مع طرق الدفع المدعومة والعديدة والتي تُعتبر من أهم ميزات المنصة إضافة لسهولة ربط الأكاديمية مع محرك البحث جوجل وأهم منصات التواصل الاجتماعي التي تُساعدك على التسويق. ابدأ ببناء أكاديميتك الآن وابدأ ببيع دوراتك الاحترافية عبر منصة مساق، بالتوفيق!
-
التعلم والتعليم عن بعد لم يبدأ مع تقدم التقنية وظهور الانترنت ولكن هذا جعل المفهوم أكثر انتشارًا وقابلية للتطبيق، وأقصد هنا بالتعليم عن بعد ووجود المُعلم في منطقة جغرافية مختلفة تمامًا عن المُتعلم ويمكن تتبع هذه العملية تاريخيُا للقرن الثامن عشر حيث كانت تتم العملية بالمراسلة وتبادل الكتب. بداية التعليم عن بعد (أونلاين) تطورت فكرة التعليم عن بعد مع ظهور الإنترنت في مطلع التسعينيات واستخدام البريد الإلكتروني لتبادل المعلومات والمراسلات، وقد كانت جامعة فينيكس The University of Phoenix أول جامعة تقدم برامج تعليمية أونلاين عام 1991م من خلال شبكة الإنترنت. التوجه نحو دعم التعليم أونلاين ليس بجديد حيث بدأ قبل عام 2012م وساعد في ذلك تطور البنية التحتية لشبكات الاتصال والتقنيات المستخدمة والسرعات التي تدعمها فأصبح بالإمكان الآن متابعة المُعلم مباشرًة باستخدام تقنيات البث المُباشر إضافة إلى إمكانية متابعة التسجيلات المُسبقة للدروس وتتبع الطالب بآن واحد باستخدام تقنيات الذكاء الصنعي والتي تُغني المًعلم عن التواجد بالقرب من الطالب لمتابعته كل الوقت إن كان فعلًا يتابع الدرس أم لا وهذا ينطبق على الاختبارات التي تتم أونلاين. أثر جائحة كوفيد-19 على التعليم انتشر مفهوم التعليم أونلاين كانتشار النار بالهشيم بسبب جائحة كوفيد-19 والتي بدأت في مطلع عام 2020م، إذ فرضت الجائحة قوانين جديدة على الحياة الاجتماعية وكان أهمها الالتزام بالتباعد الاجتماعي للحد من تفشي الفيروس، ما استدعى تطبيق حجر في معظم أنحاء العالم نتج عنه الإقفال التام للمدارس والجامعات والمعاهد الخاصة والعامة. لم يكن هناك رؤية واضحة للمدة التي سوف يستمر بها الحجر لذلك كان على المؤسسات التعليمية باختلاف أشكالها اتخاذ تدابير جديدة تضمن سير العملية التعليمية حتى لو استمر الحجر لسنين. كما ذكرت سابقًا فإن مفهوم التعليم عن بعد ليس بجديد ولذلك كانت العديد من المؤسسات التعليمية والأفراد مستعدين للأمر ولو كان هذا الاستعداد غير كامل. فمثلًا يوجد العديد من المُعلمين الذين لم يكتفوا بتعليم الطلاب المتواجدين في محيطهم ولجأوا لمنصة يوتيوب التي تسمح لأي شخص برفع مقاطع فيديو (طالما انها لا تنتهك أي حقوق ملكية أو شروط الاستخدام الخاصة بيوتيوب)، وبذلك تمكن المُعلم الموجود في أقصى الشرق العربي من الوصول للطالب الموجود في أقصى المغرب العربي والعكس بالعكس. أحد النواحي السلبية ليوتيوب أنه منصة مجهزة لرفع وتشغيل مقاطع الفيديو سواء كان محتوى المقاطع ترفيهي أو تعليمي أو تثقيفي أو توعوي ويُمكن لأي شخص الوصول لها ولا يوجد طريقة واضحة لتمييز المُعلم الجيد والخبير عن غيره كما لا يوجد طريقة لمتابعة الطلاب من خلال المنصة. صحيح أن المحتوى مجاني غالبًا ولكن الجودة غير مضمونة ولا تستطيع كطالب التواصل مع المُعلم بسلاسة وإيصال استفساراتك له. أنواع المنصات التعليمية عن بعد يوجد نوعان للمنصات التعليمية، النوع الأول وهي منصات تابعة لمؤسسات تعليمية وتعتبر امتدادًا لهذه المؤسسات على شبكة الإنترنت أو منصات تابعة لمؤسسات غير ربحية الهدف منها نشر العلم والمعرفة حول العالم وبالأخص للبلدان التي لا يتوفر فيها وصول لمحتوى تعليمي جيد، أما النوع الثاني عبارة عن منصات تسمح لك باستخدامها لتقديم الدروس ويمكن للطلاب التسجيل ضمنها ويتوجب عليك دفع رسوم شهرية أو سنوية لاستخدام هذه المنصات. في كلا الحالتين للنوع الأول فإن من يقدم هذه الدروس هم أشخاص ذو خلفية أكاديمية وخبرة في مجال التعليم ويحملون شهادات موثقة أما النوع الثاني فلا يتطلب ذلك. إن أكاديمية حسوب وكورسيرا وEDX هي أمثلة جيدة عن النوع الأول أثبتت مكانتها في مجال التعليم أونلاين وساهمت في تغيير حياة العديد من الطلاب. أما مساق و Udemy هي أمثلة عن النوع الثاني والتي أثبتت فائدتها وخصوصًا في المجالات التخصصية والأقرب لسوق العمل فالمنصات السابقة لا تعتمد على منهج أكاديمي بل يقوم المُعلم بتقديم زبدة خبرته للطلاب وهو ما يحتاجه الطالب إلى جانب المعلومات الأكاديمية. منصة مساق: إنشاء دورة تعليمية خاصة عن بعد وبيعها يتميز النوع الثاني بالفرصة التي يوفرها للشباب المُبدع والموهوب على الانتشار دون وجود عوائق فكل ما تحتاجه هو المهارة التي لديك وحساب على منصة مساق. يتجه الآن العديد من المُستقلين لتحقيق دخل سلبي وأقصد بذلك تحقيق دخل دون الحاجة لبذل الجهد والمزيد من الوقت، فعلى سبيل المثال إن كان المستقل مصمم شعارات فعليه لتحقيق مدخول تصميم شعار وبيعه للعميل وهذا في كل مرة يتطلب جهدًا ووقتًا واستخدامًا لنفس المهارات التي يمتلكها في التصميم ولكن ماذا لو قام هذا المصمم بتأليف دورة تدريبية يُلخص فيها خبرته العملية وقام بتدريب مجموعة من الطلاب في معهد تدريبي، أيضًا هذا يحتاج منه جهدًا ووقتًا وانتشاره سوف يكون محدود بمنطقة جغرافية معينة. هنا يأتي دور منصة مساق حيث تستطيع نقل هذه الخبرة إلى الواقع الافتراضي الذي يمنحك الوصول لعدد أكبر من الطلاب متجاوزًا الحدود الجغرافية مع تحقيق دخل دون الحاجة لبذل جهد إضافي، عليك بذل مجهود لمرة واحدة عند تحضير الدورة وتسجيل مقاطع الفيديو أما بعد ذلك فيصبح الأمر بسيطًا جدًا ومُقتصرًا فقط على متابعة الطلاب والإجابة على أسئلتهم واستفساراتهم وتقييم أدائهم. تتميز منصة مساق بكونها منصة داعمة للغة العربية والمدربين العرب إضافة لكونها تقدم لك موقع كامل من جميع النواحي وهذا ما سوف تتعرف عليه في مقال كيفية إنشاء دورات تعليمية مستقلة على منصة مساق وبيعها. إنشاء موقع إلكتروني لأكاديميتك ليس بالأمر السهل فعليك الإحاطة بالعديد من التفاصيل مثل الاستضافة وبرمجة المنصة بالكامل والدعم الفني والمشاكل التي تواجهك مستقبلًا إضافة إلى الوقت اللازم لتشغيل الموقع دون أخطاء. لست بحاجة لإشغال ذهنك بجميع ما سبق من تفاصيل فهي متوفرة ضمن منصة مساق، وكل ما يتطلب الأمر التسجيل فيها وإطلاق أكاديميتك بدقائق فقط. ليس عليك القلق حول جودة الاستضافة أو فريق الدعم الفني الخاص بها وليس عليك القلق من أخطاء مستقبلية قد تواجهك عند بدء استقبال الطلاب. هذا جانب بسيط مما توفره المنصة فأنا لم أتطرق بعد للأمان العالي لها وتوافقها مع محركات البحث إضافة إلى توفير العديد من بوابات الدفع التي تلائم غالبية الدول العربية وهذا أمر يتوقف عنده العديد من المُستقلين عند التفكير بإنشاء أكاديمية خاصة. أحد الميزات القيمة في منصة مساق هي إمكانية إضافة منتجات رقمية تستطيع الترويج لها ضمن أكاديميتك، فلنقل أنك مُصمم مواقع ولديك العديد من التصاميم الخاصة بك والجاهزة لمواقع الكترونية، يُمكنك إدراجها ضمن الأكاديمية كمنتجات رقمية وبيعها لتُحقق دخل إضافي إلى جانب الدخل الخاص بالدورات. قد تتساءل لماذا علي إنشاء أكاديمية لتقديم دورات مدفوعة ويوجد العديد من المنافسين الذين يقدمون دورات مجانية على منصات أخرى وهو سؤال محق ويجب الإجابة عنه. بداية يوجد تطور مُستمر في جميع الجوانب التدريبية سواء كنت تعمل في مجال التصميم أو البرمجة أو غيرها وهناك منافسة مستمرة. يصعب على المدرس متابعة الطلاب في الدورة المجانية بسبب العدد الكبير ولكن على العكس من ذلك في الدورات المدفوعة يُتابع المدرس طلابه ويجيب عن جميع أسئلتهم حيث يكون عدد الطلاب محدود وقابل للإدارة، أضف إلى ذلك اختلاف العقول واختلاف طرق شرح المعلومة وهو ما يُميزك عن غيرك وسوف يُشكل عامل جذب لفئة من الطلاب. تقدم منصة مساق 3 باقات هي باقة المعلم وباقة المدرسة وباقة الأكاديمية والتي تختلف بالكلفة الشهرية والميزات التي تقدمها كما يجب التنويه أن المنصة لا تتقاضى أي نسبة من الربح الذي تحققه من بيع دوراتك من خلالها. سوف أركز على الباقة الأولى وهي باقة المُعلم التي تُناسب أي مستقل يريد الانطلاق في مجال التدريب أو نقل خبرته لعدد أكبر من الطلاب حول العالم. تشترك هذه الباقة مع بقية الباقات بدعم عدد لا محدود من الطلاب وعدد لا محدود من الدورات وجميع بوابات الدفع المتوفرة عبر المنصة ويكمن الاختلاف في بعض الجوانب والتي يُمكن الاستغناء عنها كمعلم فمثلُا يمكنك إضافة منتجات ولكن العدد محدود بـ 7 منتجات فقط (أعتقد أنها كافية في البداية)، الأمر نفسه ينطبق على صفحات الهبوط حيث تستطيع إنشاء 7 صفحات فقط وهي أكثر من كافية إذ سوف تحتاج لصفحة رئيسية وصفحة سياسة الخصوصية وصفحة لنشر الدورات وصفحة لتتكلم بها عن نفسك. تفتقد هذه الباقة لنظام الواجبات ولكن تدعم نظام الاختبارات وهو جانب يُمكن تجاوزه بالاعتماد على إرسال الواجبات باستخدام البريد الإلكتروني مثلًا. بقية الميزات هي ميزات يحتاجها من يمتلك موقعًا إلكترونيًا ويحتاج ربط أجزاء معينة منه مع المنصة أو لمن يمتلك عدد أكاديمية أو مدرسة ولديه عدد كبير من المدربين والإداريين. بالنظر للكلفة الشهرية لباقة المعلم فهي حقيقة مقبولة جدًا واقتصادية حيث قيمة الكلفة السنوية أقل بكثير من كلفة إنشاء منصة تعليمية من الصفر والاشتراك بخدمة استضافة ودفع تكاليف مًبرمج لبناء المنصة إضافة إلى اختصار منصة مساق لكثير من الوقت عليك وبساطة فتح حساب على المنصة وإضافة دورات ودروس عليها. الإحصائيات الأخيرة لمنصة مساق تُظهر النجاح الذي حققته هذه المنصة خلال مدة انطلاقها القصيرة فحتى الآن يوجد أكثر من 70 عميل وتم استقبال أكثر من 50 ألف طالب وأكثر من نصف مليون ريال سعودي إجمالي التعاملات على المنصة. إن عجلة الزمن لا تتوقف والفرصة متاحة أمامك الآن لتتميز وتحجز مكانًا في عالم التعليم أونلاين عن بعد كما فعل قبلك من المستقلين الذين استخدموا منصة مساق وحققوا نجاحًا مثل أكاديمية مجد للمُستقلة المُبدعة مجد جاها، فلا حاجة للكلام عن هذه الأكاديمية بل يكفي قراءة تعليقات الطلاب والتي تظهر في الصفحة الرئيسية للأكاديمية وهي حركة تسويقية رائعة إذ تُشجع أي زائر جديد مثلي على الاطلاع على محتوى الأكاديمية وتلقائيًا سوف أبدأ بالتفكير بالتسجيل بأحد الدورات إن كان مجال الأكاديمية يتقاطع مع اهتماماتي. أكاديمية مجد ليست قصة النجاح الوحيدة بل هي جزء من مجموعة كبيرة، مثل: مصنع المحتوى، وأكاديمية منسوج، وأكاديمية Alwyas CAN، وأكاديمية سترونج اندبندنت دريمر، لتبدأ خطوتك الأولى في مسيرة التدريب عن بعد ونقل خبراتك لأقرانك من الشباب.