نظرة شاملة على بنية قوالب ووردبريس
12 يونيو 2009ما هي القوالب؟
القوالب هي مجموعة من ملفات php و css، تتحكم في كيفية ظهور محتويات ووردبريس في موقعك، للزوار، كل شيء تكتبه أو تدونه يتم تخزينه في قاعدة بيانات ووردبريس على موقعك، عبر مئات الدوال البرمجية في ووردبريس، يستطيع هذا الأخير استخراج المعلومات من قاعدة البيانات بشكل منظم، التصنيفات في جهة، والأرشيف في جهة، المواضيع والتعليقات عليها وهكذا، لكل شيء دوال تنظم طريقة استخراجه، بعد استخراجه علينا أن نحدد طريقة ظهوره للزائر، أي أين وكيف سيظهر؟ مثلا التعليقات نحدد أنها تظهر عند نهاية الموضوع، والتصنيفات نحدد أنها ستظهر في القائمة الجانبية، أو على شكل قائمة أفقية في الاعلى، كذلك نحدد شكل ظهوره، بأي خط؟ بأي لون؟ بأي خلفية؟ وهذا هو دور القوالب.
الملفان الأساسيان
ذكرنا ان قالب ووردبريس يحدد أين وكيف ستظهر المحتويات، وبذلك يمكن لأي قالب ووردبريس أن يتكون فقط من ملفين أساسيين:
ملف Index.php: وهو الذي يحدد المحتويات التي ستظهر وخصائصها، ومكان كل منها في الصفحات التي ستظهر للزائر.
ملف style.css: يحدد كيفية ظهور هذه المحتويات، أي أنه المسؤول عن زينة القالب وشكله فقط.

ملفات تكميلية لقوالب ووردبريس
تتميز قوالب ووردبريس بما يسمى، التنظيم الشجري (Template Hierarchy)، في حال استخدمنا فقط ملف index.php و style.css فتصفح الزائر للموقع دائما يكون عبر استخدام ملف index.php، عند دخوله لتصنيف معين مثلا فسيتم عرض المواضيع بنفس طريقة عرضها في الرئيسة، كذلك عند النقر على رابط موضوع ما، يتم عرضه بنفس الطريقة باستناء بعض التغييرات التي يتحكم بها ووردبريس نفسه، كعدم السماح بعرض التعليقات إلا في التدوينة المنفردة، أو عرض رابط (أكمل قراءة الموضوع) في الرئيسية والتصنيفات.. ولا يتم عرضه في صفحة التدوينة المنفردة.
في الغالب نود تخصيص مظهر خاص للصفحة الرئيسية، وآخر للتصنيفات، ونغير شكل ظهور المواضيع عند البحث مثلا.. هنا يأتي دور الملفات التكميلية وفق التنظيم الشجري لملفات القالب، لتحديد مظهر خاص للتصنيفات نضيف ملف category.php بجانب ملف index.php ونقوم بتعديله بما يناسبنا، وعند نقر الزائر عل رابط تصنيف ما، سيتم عرض category.php، ولا يستخدم index.php للتصنيفات إلا في حال غياب الملف الخاص بها، وهذه الحال مع جميع الملفات التكميلية، وهذا شرح مفصل لطريقة عمل التظيم الشجري:
1. الرئيسية
إذا وجد ووردبريس ملف home.php يستخدمه في الرئيسية، في حالة لم يجده ينتقل إلى ملف index.php
home.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/
2. التصنيفات
يمكن استخدام ملف category-25 لتخصيص مظهر التصنيف 25، إذا لم يجده ينتقل لمف category.php إذا لم يجده ينتقل لملف الأرشيف ثم Index.php دائما في النهاية
category-id.php ثم category.php ثم archive.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/?cat=25 http://www.mysite.com/category/category25name
3. الأوسمة
يمكن استخدام ملف tag-design.php لتخصيص مظهر صفحة “وسم tag” إسمه باللغة الإنجليزية design، ثم ملف tag.php لتخصيص صفحة عرض الوسوم
tag-slug.php ثم tag.php ثم archive.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/?tag=design http://www.mysite.com/tag/design
4. الكاتب
عند النقر على صفحة كاتب معين (في حالة المدونات المتعددة الكتاب) يتم عرض ملف author.php في حال لم يوجد، يتم عرض ملف الأرشيف إن لم يوجد يتم عرض ملف index.php
author.php ثم archive.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/?author=3 http://www.mysite.com/author/sami
5. التاريخ
لتخصيص مظهر تصفح تاريخ، نستخدم date.php إذا لم ينتقل لملف الأرشيف
date.php ثم archive.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/?m=2006 http://www.mysite.com/?m=200610 http://www.mysite.com/?m=20061011 http://www.mysite.com/2009/ http://www.mysite.com/2009/04/
6. التدوينات المنفردة
لتصفح المواضيع المنفردة يستعمل ملف single.php
single.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/?p=4 http://www.mysite.com/categoryname/postname http://www.mysite.com/2009/01/postname
7. الصفحات
للصفحات يمكن استخدام قوالب الصفحات، لمكن تسميته بأي إسم مثل archives.php وتخصيصه كقالب لصفحة الأرشيف، إذا لم يتم تحديد قالب معين للصفحة يتم استخدام ملف page.php إن وجد وإلا فملف index.php كالعادة
a_page_template.php ثم page.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/pagename http://www.mysite.com/page_id=20
8. نتائج البحث
لتخصيص ظهور نتائج البحث
search.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/?s=word+for+serach
9. صفحة الخطأ
ماذا سيظهر للزائر إن دخل إلى رابط خاطئ هو 404.php إن وجد الملف
404.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/urlnotexist http://www.mysite.com/page_id=idnotexist
10. المرفقات:
بالنسبة للمرفقات، يمكن تصفحها باستخدام ملف مخصص لكل نوع، أو تخصيص مظهر المرفقات ككل بملف attachment.php إذا لم تواجد يعرض single.php ثم index.php
image.php ثم attachment.php ثم single.php ثم index.php
video.php ثم attachment.php ثم single.php ثم index.php
audio.php ثم attachment.php ثم single.php ثم index.php
application.php ثم attachment.php ثم single.php ثم index.php
الرابط المستخدم للدخول:
http://www.mysite.com/path/?attachment_id=533 http://www.mysite.com/path/postname/attachementname
تلك عشرة كاملة، والآن لننتقل لنوع آخر من الملفات.
ملفات ثابتة في قوالب ووردبريس
عند عرض الموقع، في أي صفحة من صفحاته سواء في الرئيسية أو في المواضيع أو في الأقسام، هناك أجزاء ثابتة مثل رأس الصفحة header وذيل الصفحة footer والقائمة الجانبية أحيانا sidebar ولكي لا نضطر لكتابة الكود الخاص بهذه الأجزاء كل مرة، يقوم المطورون عادة بكتابتها في ملفات خارجية: header.php و footer.php و sidebar.php، ثم يقومون باستدعائها في كل ملف من الملفات السابقة (index.php, category.php,archive.php …) عن طريق دالة include بالشكل التالي:
<?php include (TEMPLATEPATH . '/filename.php'); ?>
يوجد أيضا ملفين آخرين عادة يتم فصلهما خارج الملفات السابقة هما ملف التعليقات وصندوق البحث، comments.php و searchbox.php، وهذه الملفات الخمسة مجتمعة لكونها تتكرر في جميع القوالب قام مطورو ووردبريس بإنشاء خمس دوال لإستيرادها، إذا كانت ملفات php لها متوفر مع القالب يتم استيراده، وإن لم يكن متواجدا يتم استيراد كود افتراضي لها.
الدوال الخمس لإستيراد الملفات الثابتة في ووردبريس
<?php get_header(); ?> <?php get_footer(); ?> <?php get_sidebar(); ?> <?php comments_template(); ?> <?php get_search_form(); ?>
تطبيقات على قالب wpaon default
1. قم بقص جميع ملفات php من المجلد الرئيسي للقالب إلى مجلد inclphp جرب الدخول إلى المدونة عبر المتصفح الآن، ستجد أن القالب يظهر بشكل مختلف لك لا يوجد خطأ، ذلك أن ووردبريس استخدم الكود الفتراضي مكان كل من header.php و footer.php …
2. قم بإعادة هذه الملفات، ثم قم بنسخ ملفات أخرى من inclphp إلى المجلد الرئيسي للقالب مثل category.php و comments.php وفي كل مرة جرب الدخول إلى المتصفح، كلمة index.php التي كانت ظاهرة في الأعلى سوف تظهر الآن إسم كل ملف مستخدم في الإستعراض.
بالتوفيق، وفهما جيدا إن شاء الله، أية أسئلة في هذا المحور؟ أكرر في هذا المحور
الاوسمة: التنظيم الشجري, بنية ووردبريس, تكويد, دورة قوالب ووردبريس, قوالب ووردبريس, ملفات القوالب

28 تعليق على “نظرة شاملة على بنية قوالب ووردبريس”
أول تعليق على هذا الموضوع الرائع
بصراحة أخي عمران طريقتك في الشرح رائعة
جزاك الله كل خير على ما تقوم به
السلام عليكم
بواسطة أنس الشامي في يونيو 12, 2009
شكرا لك ، متابع لك ، لكن أمامي امتحانات آخر العام ..لذا فبعد أسبوعين أطبق و أعلق على المواضيع ..
بواسطة yusuf في يونيو 12, 2009
تدوينة رائعه جدا ما شاء الله عليك اخي
سوف يتم قراءة التدوينة بصباح على رواق
والتطبيق تحياتي ^_^
بواسطة Master Of Love في يونيو 13, 2009
موضوع غاية في الاهمية و مرتب بشكل صحيح
متابع معك
شكرا جزيلا
بواسطة Karar.A.R في يونيو 13, 2009
شرح جميل أستاذنا العزيز
هل أستطيع أن أصمم قالب بسيط يحتوي على الملفين الأساسيين فقط؟ وأستغنى عن الملفات المكملة؟ إن كان كذلك، أعطنا مثال إن وجد؟
بواسطة أمتون في يونيو 13, 2009
مرحبا بالأحبة
@yusuf
لا مشكلة أخي أجيبك على أي تساؤل ولو بعد حين
@أمتون
في القالب نفسه الذي قمت بإرساله أخي عامر، قم بقص جميع الملفات إلى inclphp بالتالي يصبح القالب فقط بملفين، وجرب، سيعمل القالب، سيحتاج فقط تعديل على ملف css ليتناسب مع حاصل الكود الجديد
سأجهز مثالا كاملا لقالب بملفين إن شاء الله
بواسطة عمران عماري في يونيو 13, 2009
صراحة..
شرح رااااااائع رائع.. بل و أكثر من رائع
يستحق الإشادة ..
أهنئك على هذا التميز.
احترامي و تقديري
بواسطة WhisperiN في يونيو 13, 2009
رائع جداً
بإذن الله ترون تطبيقي قريباً
بواسطة عبدالله عبيد في يونيو 13, 2009
السلام عليكم ورحمة الله وبركاته..
موضوع استفدت منه كثيرا أخي عمران، خصوصا فيما يتعلق بالملفات التكميلية لقوالب وورد بريس..
إنه لمن المهم جدا المعرفة الكافية بآلية عمل وورد بريس من أجل انطلاقة جيدة في عالم قوالبها.. وهو ما نستمتع به معك أخي عمران فجزاك الله عنا كل خير..
مني لك أرق تحية..
بواسطة عبد الهادي في يونيو 13, 2009
شرح رائع جدا ما شاء الله عليك حبيبي عمران
يعطيك الف عافيه يارب
تحياتي لك
محمود قنديل ^_^
بواسطة Master Of Love في يونيو 13, 2009
ماشاء الله تبارك الله!
وإني استفدت كثيرًا من هذا الدرس، وبدأت الدورة بالنسبة لي الآن
بواسطة نجاة في يونيو 13, 2009
بسم الله ما شاء الله
استفدنا كثيرا والله أخي الكريم , بارك الله فيك ..
بواسطة ياسر في يونيو 13, 2009
السلام عليكم استاذ عمران .. في الحقيقة عندي كم سؤال ومُحرجة بسبب كثرة الأسئلة
.. على كل حال في الفقرة المتعلقة بالملفات الثابتة ذكرت التالي : عن طريق دالة include بالشكل التالي:
لكن الصورة الظاهرة هي مجرد صورة مستطيل أبيض لا يحتوي على شيء ولا أعرف هل الصورة ظاهرة بشكل خاطئ عندي أم أنك لم تقصد الإشارة إلى شيء ما في الأصل !
ثانياً أردت السؤال عن التطبيقات أنت ذكرت قيامنا بتجربة قص جميع ملفات php ونقلها لملف inclphp ثم معاينة التغيرات على القالب لكن لم تظهر تغيرات على القالب لدي فهل التغيرات التي كنت تقصدها هي التغيرات في شريط العناوين واشارته أم تغير في مظهر القالب ؟
بواسطة someone في يونيو 13, 2009
أهلا أختي
بخصوص الدالة، حدث خلل عند تحديث الموضوع، أتمنى أن تكون ظاهرة الآن
قص جميع الملفات، باستثناء ملفي index.php و style.css سيغير شكل القالب، حيث سيظهر الهيدر و القائمة الجانبية الإفتراضيين، بخصوص التطبيق الثاني ستحدث التغييرات في العنوان الكبير على اليسار (index.php)
بواسطة عمران عماري في يونيو 13, 2009
اهلاً استاذ عمران ، الآن الصورة ظاهرة شكراً لك . لكن بالنسبة لي تبدو مسألة قص الملفات ونقلها غير واضحة لأني لا أرى أي تغير طارئ على المدونة هل يمكنك أن تظهر لنا صور التغير الظاهرة ؟
بالنسبة لطريقتي في نقل الملفات في حال تساءلت فأنا أذهب إلى ملف المدونة الافتراضي وأقوم بسحب ملفات الphp للفوتر والهيدر وأسقطها في ملف inclphp ثم أذهب إلى صفحة المدونة واحدثها لأرى التغيرات لكني لا أرى شيء !! .
بواسطة someone في يونيو 13, 2009
1. بعد نقل ملفات header.php, sidebar.php, footer.php إلى inclphp هذا يعني أن القالب أصبح بملفين فقط، عند تحديث المتصفح نلاحظ التالي
http://farm4.static.flickr.com/3360/3621244223_174109173b_o.jpg
2. بعد إعادة جميع الملفات من inclphp إلى المجلد الرئيسي للقالب (بجانب index.php) يصبح للقالب ملفات تكميلية، أي أنه لم يعد يعتمد على index.php لعرض الصفحات مثلا، بل سيعتمد على page.php وهذا ما تظهر الصورة التالية
http://farm4.static.flickr.com/3373/3621244279_f6af6427c8_o.jpg
بواسطة عمران عماري في يونيو 13, 2009
شكراً لك ، أصبحت الأمور واضحة جداً الآن .. بارك الله فيك. ننتظر الدرس القادم
بواسطة someone في يونيو 13, 2009
معلومات تأسيسية مهمة ومفيدة جدا..
شكرا أستاذ عمران
بواسطة abdullah_kh في يونيو 13, 2009
متابعه وسيتم التطبيق ان شاءالله..
شكراً لك اخي عمران..
بواسطة M!sS roo7 alm!sk في يونيو 13, 2009
بارك الله فيك .. وشرحك مبسط
بواسطة احمد في يونيو 13, 2009
جزاك الله خيرا اخي الحبيب عمران دورة مشوقة و شرح رائع استفدت منه كثيرا و اصبح لدي معلومات جميلة فبارك الله فيك
و الله بالنسبة لي اعتبر نفسي و قعت على كنز و هي مونتك الرائعة
جعلها الله في ميزان حسناتك
بواسطة eng mk في يونيو 14, 2009
مرحبا اخ عمران
عند محاولتي اداء التطبيقات على قالبك الافتراضي تظهر لي الرساله التاليه:
Fatal error: Call to undefined function get_header() in C:\xampp\htdocs\wpaon_default\inclphp\index.php on line 1
أين هي المشكله يا ترى؟
بواسطة ميّـاسي في يونيو 15, 2009
السلام عليكم، ملفي index.php و style.css لا يجب نقلهما داخل مجلد inclphp كما ذكرت في بداية هذا الموضوع، لا يمكن أن يعمل القالب إلا لوجود هذين الملفين في مجلد القالب مباشرة:
wp-content/themes/wpaon_default
بواسطة عمران عماري في يونيو 15, 2009
عذرا لسؤالي
الذي فهمته انه يجب ان يكون الورد برس مثبتا حتى يعمل القالب اليس كذلك؟
بواسطة ميّـاسي في يونيو 16, 2009
بورك فيك أخي
شرح وافي وكافي
لكن مثل الأخ يوسف
أمامي امتحانات نهاية السنة
فاصل قليل ولي عودهـ
بورك في اخي الغالي
بواسطة ياسر في يونيو 20, 2009
بارك الله فيك .. فعلاً معلومات سهلة و مفيدة للغاية ..
طريقة شرحك رائعة للغاية ما شاء الله.
كم اتمنى وجود معلومات مشابهة و طريقة شرح مشابهة لبرنامج جوملة.
بواسطة مرشد في يونيو 30, 2009
أخ عمران
التطبيقات المطلوبة على قالب wpaon default ؟
لم أفهم ما الغرض إذا من الوورد بريس الذي تم تثبيته ؟
هل نقوم بنقل مجلد القالب التموذجي أم ماذا بالضبط ؟
أعتذر خبرتي معدومة وأتمنى أتعلم لو القليل
بواسطة sunlight في يوليو 3, 2009
أعتذر // تم إجتياز المشكلة
لم انتبه لدرس ( قالب wpaon النموذجي لدورة قوالب ووردبريس )
شكرا مجددا .. متابعه
بواسطة sunlight في يوليو 3, 2009