الوصف
ما هي تنسيقات المقالات، وكيف يمكنك استخدامها، وكيف تطوّر تنسيقات المقالات؟ سيمنحك هذا الشرح التفصيلي خطوة بخطوة فهمًا لماهية تنسيقات المقالات وكيفية إنشاء تنسيقاتك الخاصة.
المهارات الأساسية المطلوبة
- معرفة أساسية بـ HTML/CSS/PHP
- معرفة أساسية بتثبيت قوالب WordPress وتفعيلها
- فهم طريقة تنظيم المجلدات والملفات
- القدرة على تحرير الملفات باستخدام محرر نصوص
الأهداف
- سينشئ الطلاب كل تنسيق مقالة باستخدام قالب WordPress افتراضي
- سيفعّل الطلاب دعم تنسيقات المقالات في قالب لا يدعم تنسيقات المقالات بعد
- سينسّق الطلاب كل نوع من تنسيقات المقالات
الأصول
- WordPress مثبت محليًا
- قالب Twenty Thirteen مثبت (وقد أُنجزت جميع تنسيقات المقالات وتنسيقها)
- قالب Twenty Twelve مثبت (لتوضيح كيفية تفعيل تنسيقات المقالات وتنسيقها عندما لا تكون مدعومة مسبقًا من القالب المحدد)
- قالب فرعي لتفعيل تنسيقات المقالات
- محتوى تجريبي من بيانات اختبار القوالب
من المهم أن يكون لديك قالب Underscores مُعدًّا ليعمل بشكل كامل، باستثناء تنسيقات المقالات، وذلك لتوضيح كيفية إعدادها وتنسيقها.
أسئلة التقييم
- هل لديك خبرة بتثبيت القوالب وتفعيلها عبر لوحة تحكم WordPress؟
- هل لديك معرفة أساسية على الأقل بـ HTML/CSS/PHP؟
- هل تشعر بالارتياح عند استخدام محرر نصوص لتحرير التعليمات البرمجية؟
- هل سيكون لديك موقع WordPress تجريبي مستضاف محليًا أو عن بُعد لاستخدامه أثناء الدرس؟
ملاحظات المعلم
- يُعد إجراء عرض توضيحي مباشر أثناء تعليم خطوات إنشاء قالب فرعي أمرًا بالغ الأهمية حتى يستوعب الطلاب المادة.
- من الأسهل أن يعمل الطلاب على نسخة محلية مثبتة من WordPress. خصص بعض الوقت قبل الدرس لمساعدة الطلاب على تثبيت WordPress محليًا إذا احتاجوا إلى ذلك. لمزيد من المعلومات حول كيفية تثبيت WordPress محليًا، يُرجى زيارة التثبيت على خادم محلي.
- الإجابات المفضلة عن أسئلة التقييم هي «نعم». قد لا يكون المشاركون الذين يجيبون بـ «لا» عن الأسئلة الأربعة جميعها مستعدين لهذا الدرس.
شرح عملي
مقدمة: ما هي تنسيقات المقالات؟
ظهرت تنسيقات المقالات في WordPress منذ الإصدار 3.1. ومع ذلك، يدعمها عدد قليل من القوالب بشكل أصلي، ويستخدمها عدد أقل من المستخدمين. تنسيق المقالة هو جزء من المعلومات الوصفية يمكن للقالب استخدامه لتخصيص طريقة عرض المقالة. توفر ميزة تنسيقات المقالات قائمة موحدة بالتنسيقات المتاحة لجميع القوالب التي تدعم الميزة. وليس مطلوبًا من القوالب دعم كل تنسيق في القائمة. ولا يمكن للقوالب أو حتى الإضافات تقديم تنسيقات جديدة. يوفّر توحيد هذه القائمة توافقًا بين العديد من القوالب، كما يتيح لأدوات التدوين الخارجية الوصول إلى هذه الميزة بطريقة متسقة. باختصار، باستخدام قالب يدعم تنسيقات المقالات، يستطيع المدون تغيير مظهر كل مقالة باختيار تنسيق من قائمة بأزرار الاختيار. تشمل أنواع تنسيقات المقالات ما يلي:
ملاحظة جانبية – تُنسّق عادةً دون عنوان. تشبه تحديث ملاحظة على Facebook.

معرض – معرض من الصور. من المرجح أن تحتوي المقالة على رمز مختصر لمعرض وأن تتضمن مرفقات صور.

رابط – رابط إلى موقع آخر. قد ترغب القوالب في استخدام الوسم الأول في محتوى المقالة بوصفه الرابط الخارجي للمقالة. وقد يكون الأسلوب البديل هو أنه إذا كانت المقالة تتكون من عنوان URL فقط، فسيكون ذلك هو عنوان URL، وسيكون العنوان (post_title) هو الاسم المرفق بمرساة الرابط.

صورة – صورة واحدة، مع تعليق أو بدونه. يمكن اعتبار الوسم الأول في المقالة هو الصورة. وبدلًا من ذلك، إذا كانت المقالة تتكون من عنوان URL فقط، فسيكون ذلك هو عنوان URL للصورة، وسيكون عنوان المقالة (post_title) هو سمة العنوان للصورة.

اقتباس – اقتباس. من المحتمل أن يحتوي على blockquote يتضمن محتوى الاقتباس. وبدلًا من ذلك، قد يكون الاقتباس هو المحتوى نفسه، بينما يكون المصدر/المؤلف هو العنوان.


فيديو – فيديو واحد أو قائمة تشغيل فيديو.

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

إذا لم ترَ وحدة التنسيق، فتحقق من تفعيلها في خيارات الشاشة. وإذا لم ترَ خيار التنسيق هناك، فمن المحتمل أنك تستخدم قالبًا لا يستخدم تنسيقات المقالات
بعد إسناد المقالات إلى تنسيق مقالة معين، سترى أيقونات في لوحة التحكم تشير إلى التنسيق الذي تنتمي إليه كل مقالة. انتقل إلى المقالات > جميع المقالات:

عند عرض مدونتك، سيظهر المحتوى بمظهر فريد لكل تنسيق.

إضافة دعم القالب
تحتاج القوالب إلى استخدام add_theme_support() في ملف functions.php لإخبار WordPress بتنسيقات المقالات التي يجب دعمها، وذلك بتمرير مصفوفة من التنسيقات على النحو التالي:
add_theme_support( 'post-formats', array( 'aside', 'quote', 'status', 'image', 'gallery', 'chat', 'link', 'audio', 'video' ) );
يُرجى ملاحظة أنه يجب استدعاء ذلك قبل استدعاء خطاف init! ومن الخطافات الجيدة للاستخدام خطاف after_setup_theme.
إضافة دعم نوع المقالة
إذا كنت ترغب في استخدام تنسيق تنسيقات المقالات في الصفحات أو أنواع المقالات المخصصة، فهذا ممكن. تحتاج أنواع المقالات إلى استخدام add_post_type_support() في ملف functions.php لإخبار WordPress بتنسيقات المقالات التي يجب دعمها:
// add post-formats to post_type 'page'
add_post_type_support( 'page', 'post-formats' );
// add post-formats to post_type 'my_custom_post_type'
add_post_type_support( 'my_custom_post_type', 'post-formats' );
استخدام تنسيقات المقالات
في القالب، استخدم get_post_format() للتحقق من تنسيق المقالة وتغيير طريقة عرضها وفقًا لذلك. لاحظ أن المقالات ذات التنسيق الافتراضي ستُرجع قيمة FALSE. أو استخدم has_post_format() كوسم شرطي:
if ( has_post_format( 'video' )) {
echo 'this is the video format';
}
تتمثل طريقة بديلة لاستخدام التنسيقات في قواعد التنسيق. ينبغي للقوالب استخدام الدالة post_class() في الشفرة الحاوية المحيطة بالمقالة لإضافة فئات تنسيق ديناميكية. وستؤدي تنسيقات المقالات إلى إضافة فئات إضافية بهذه الطريقة، باستخدام الاسم «format-foo». فعلى سبيل المثال، يمكن إخفاء عناوين المقالات ذات تنسيق الحالة بإضافة ما يلي إلى ورقة أنماط القالب:
.format-status .post-title {
display:none;
}
تنسيق تنسيقات المقالات
على الرغم من أنه يمكنك تنسيق وتصميم تنسيقاتك لعرضها بأي طريقة تراها مناسبة، فإن كل تنسيق يميل إلى نوع معين من «التنسيق» وفقًا للاستخدام الحديث. من الجيد أن تضع في اعتبارك الاستخدام المقصود لكل تنسيق، إذ سيساعد ذلك القراء على التعرّف بصريًا بسهولة إلى نوع المحتوى. فعلى سبيل المثال، تُعرض تنسيقات الملاحظة الجانبية والرابط والحالة عادةً دون معلومات العنوان أو المؤلف. وهي بسيطة وقصيرة وثانوية. وقد تتضمن الملاحظة الجانبية فقرة أو فقرتين، بينما لا يتجاوز الرابط على الأرجح جملة واحدة تحتوي على رابط إلى عنوان URL ما. وقد يحتوي كل من الرابط والملاحظة الجانبية على رابط إلى صفحة المقالة الفردية (باستخدام the_permalink())، مما يتيح التعليقات، بينما من غير المرجح أن يحتوي تنسيق الحالة على مثل هذا الرابط. أما مقالة الصورة فعادةً ما تحتوي على صورة واحدة فقط، مع تعليق/نص مرافق أو بدونه. وستكون مقالة الصوت/الفيديو مماثلة، لكن مع إضافة الصوت/الفيديو. ويمكن لأي من هذه التنسيقات الثلاثة استخدام الإضافات أو التضمينات القياسية لعرض محتواها. وقد لا تُعرض العناوين والمؤلفون لها أيضًا، لأن المحتوى قد يكون واضحًا بذاته. ويناسب تنسيق الاقتباس خصوصًا نشر اقتباس بسيط لشخص ما دون معلومات إضافية. فإذا وضعت الاقتباس وحده في محتوى المقالة، ووضعت اسم الشخص المقتبس منه في عنوان المقالة، فيمكنك تنسيق المقالة بحيث تعرض the_content() وحده، ولكن بعد إعادة تنسيقه في هيئة blockquote، واستخدام the_title() لعرض اسم الشخص المقتبس منه كسطر تعريف بالمؤلف. ويميل تنسيق المحادثة خصوصًا إلى استخدام عرض نصي أحادي المسافة في كثير من الحالات. ومن خلال بعض التنسيق على .format-chat، يمكنك جعل محتوى المقالة يظهر باستخدام خط أحادي المسافة، ربما داخل div بخلفية رمادية أو ما شابه، لتمييزه بصريًا كمحادثة. راجع تنسيقات المقالات: المحادثة لمزيد من التنسيق.
التنسيقات في قالب فرعي
ترث القوالب الفرعية تنسيقات المقالات التي يحددها القالب الرئيسي. يجب استدعاء add_theme_support() لتنسيقات المقالات في القالب الفرعي بأولوية لاحقة لأولوية القالب الرئيسي، وسيؤدي ذلك إلى تجاوز القائمة الحالية، وليس الإضافة إليها.
add_action( 'after_setup_theme', 'childtheme_formats', 11 );
function childtheme_formats(){
add_theme_support( 'post-formats', array('aside', 'quote', 'status', 'image', 'gallery', 'chat', 'link', 'audio', 'video') ); }
سيؤدي استدعاء remove_theme_support('post-formats') إلى إزالة الدعم بالكامل.
تمارين جماعية
- باستخدام قالب Twenty Thirteen، أنشئ مقالة باستخدام كل خيار من خيارات تنسيق المقالات.
- باستخدام Underscores:
- أنشئ كل تنسيق من تنسيقات المقالات
حاكِ ملفات قالب Twenty Thirteen ولكن تذكّر تغيير استدعاءات اصطلاح تسمية القالب إلى اصطلاح التسمية الخاص بقالبك
- content-aside.php
- content-audio.php
- content-chat.php
- content-gallery.php
- content-image.php
- content-link.php
- content-quote.php
- content-status.php
- content-video.php
- content-none.php
نسّق تنسيقات المقالات (حاكِ قالب Twenty Thirteen السطر 1380 من Style.css)
اختبار
- ما هي تنسيقات المقالات؟ تُستخدم تنسيقات المقالات بواسطة القالب لتخصيص طريقة عرض المقالة. وتوفر ميزة تنسيقات المقالات قائمة موحدة بالتنسيقات المتاحة لجميع القوالب التي تدعم الميزة.
- ما هي بعض خيارات تنسيقات المقالات؟ الملاحظة الجانبية، الصوت، المحادثة، المعرض، الصورة، الرابط، الاقتباس، الحالة، الفيديو
- هل تنسيقات المقالات هي نفسها أنواع المقالات المخصصة؟ ومتى تختار نوع مقالة مخصصًا بدلًا من تنسيق مقالة؟ لا، تظهر أنواع المقالات المخصصة كخيار آخر في لوحة تحكم الإدارة بالقرب من المقالات والصفحات. وتكون أنواع المقالات المخصصة مفيدة عندما لا تريد ظهور المحتوى على /blog، مثل تقويم الفعاليات أو قوائم العقارات.
- أين تفعّل تنسيقات المقالات لقالبك؟ Functions.php، وتحديدًا ملف functions.php في القالب الفرعي
- ماذا يجب أن تفعل عند كتابة مقالة ينبغي أن تستخدم تنسيق مقالة؟ حدد تنسيق المقالة الذي تريد استخدامه
- أين تخصص مظهر تنسيقات المقالات؟ Style.css، وتحديدًا ملف style.css في القالب الفرعي
- هل تدعم جميع القوالب تنسيقات المقالات؟ لا
- ما قوالب WordPress الافتراضية التي تدعم تنسيقات المقالات؟ Twenty Thirteen وTwenty Fifteen
- هل يمكنك إضافة دعم تنسيقات المقالات إلى قالبك أو قالبك الفرعي؟ نعم