تصنيف الموضوع

نظرة شاملة على بنية قوالب ووردبريس

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 التي كانت ظاهرة في الأعلى سوف تظهر الآن إسم كل ملف مستخدم في الإستعراض.

بالتوفيق، وفهما جيدا إن شاء الله، أية أسئلة في هذا المحور؟ أكرر في هذا المحور

الاوسمة: , , , , ,

  1. 28 تعليق على “نظرة شاملة على بنية قوالب ووردبريس”

  2. أول تعليق على هذا الموضوع الرائع

    بصراحة أخي عمران طريقتك في الشرح رائعة

    جزاك الله كل خير على ما تقوم به

    السلام عليكم

    بواسطة أنس الشامي في يونيو 12, 2009

  3. شكرا لك ، متابع لك ، لكن أمامي امتحانات آخر العام ..لذا فبعد أسبوعين أطبق و أعلق على المواضيع ..

    بواسطة yusuf في يونيو 12, 2009

  4. تدوينة رائعه جدا ما شاء الله عليك اخي

    سوف يتم قراءة التدوينة بصباح على رواق

    والتطبيق تحياتي ^_^

    بواسطة Master Of Love في يونيو 13, 2009

  5. موضوع غاية في الاهمية و مرتب بشكل صحيح
    متابع معك
    شكرا جزيلا

    بواسطة Karar.A.R في يونيو 13, 2009

  6. شرح جميل أستاذنا العزيز :)
    هل أستطيع أن أصمم قالب بسيط يحتوي على الملفين الأساسيين فقط؟ وأستغنى عن الملفات المكملة؟ إن كان كذلك، أعطنا مثال إن وجد؟

    بواسطة أمتون في يونيو 13, 2009

  7. مرحبا بالأحبة

    @yusuf
    لا مشكلة أخي أجيبك على أي تساؤل ولو بعد حين

    @أمتون
    في القالب نفسه الذي قمت بإرساله أخي عامر، قم بقص جميع الملفات إلى inclphp بالتالي يصبح القالب فقط بملفين، وجرب، سيعمل القالب، سيحتاج فقط تعديل على ملف css ليتناسب مع حاصل الكود الجديد

    سأجهز مثالا كاملا لقالب بملفين إن شاء الله

    بواسطة عمران عماري في يونيو 13, 2009

  8. صراحة..

    شرح رااااااائع رائع.. بل و أكثر من رائع :)

    يستحق الإشادة ..

    أهنئك على هذا التميز.

    احترامي و تقديري

    بواسطة WhisperiN في يونيو 13, 2009

  9. رائع جداً

    بإذن الله ترون تطبيقي قريباً

    بواسطة عبدالله عبيد في يونيو 13, 2009

  10. السلام عليكم ورحمة الله وبركاته..
    موضوع استفدت منه كثيرا أخي عمران، خصوصا فيما يتعلق بالملفات التكميلية لقوالب وورد بريس..
    إنه لمن المهم جدا المعرفة الكافية بآلية عمل وورد بريس من أجل انطلاقة جيدة في عالم قوالبها.. وهو ما نستمتع به معك أخي عمران فجزاك الله عنا كل خير..
    مني لك أرق تحية..

    بواسطة عبد الهادي في يونيو 13, 2009

  11. شرح رائع جدا ما شاء الله عليك حبيبي عمران

    يعطيك الف عافيه يارب

    تحياتي لك

    محمود قنديل ^_^

    بواسطة Master Of Love في يونيو 13, 2009

  12. ماشاء الله تبارك الله!

    وإني استفدت كثيرًا من هذا الدرس، وبدأت الدورة بالنسبة لي الآن :)

    بواسطة نجاة في يونيو 13, 2009

  13. بسم الله ما شاء الله :)

    استفدنا كثيرا والله أخي الكريم , بارك الله فيك ..

    بواسطة ياسر في يونيو 13, 2009

  14. السلام عليكم استاذ عمران .. في الحقيقة عندي كم سؤال ومُحرجة بسبب كثرة الأسئلة :( .. على كل حال في الفقرة المتعلقة بالملفات الثابتة ذكرت التالي : عن طريق دالة include بالشكل التالي:
    لكن الصورة الظاهرة هي مجرد صورة مستطيل أبيض لا يحتوي على شيء ولا أعرف هل الصورة ظاهرة بشكل خاطئ عندي أم أنك لم تقصد الإشارة إلى شيء ما في الأصل !
    ثانياً أردت السؤال عن التطبيقات أنت ذكرت قيامنا بتجربة قص جميع ملفات php ونقلها لملف inclphp ثم معاينة التغيرات على القالب لكن لم تظهر تغيرات على القالب لدي فهل التغيرات التي كنت تقصدها هي التغيرات في شريط العناوين واشارته أم تغير في مظهر القالب ؟

    بواسطة someone في يونيو 13, 2009

  15. أهلا أختي
    بخصوص الدالة، حدث خلل عند تحديث الموضوع، أتمنى أن تكون ظاهرة الآن

    قص جميع الملفات، باستثناء ملفي index.php و style.css سيغير شكل القالب، حيث سيظهر الهيدر و القائمة الجانبية الإفتراضيين، بخصوص التطبيق الثاني ستحدث التغييرات في العنوان الكبير على اليسار (index.php)

    بواسطة عمران عماري في يونيو 13, 2009

  16. اهلاً استاذ عمران ، الآن الصورة ظاهرة شكراً لك . لكن بالنسبة لي تبدو مسألة قص الملفات ونقلها غير واضحة لأني لا أرى أي تغير طارئ على المدونة هل يمكنك أن تظهر لنا صور التغير الظاهرة ؟
    بالنسبة لطريقتي في نقل الملفات في حال تساءلت فأنا أذهب إلى ملف المدونة الافتراضي وأقوم بسحب ملفات الphp للفوتر والهيدر وأسقطها في ملف inclphp ثم أذهب إلى صفحة المدونة واحدثها لأرى التغيرات لكني لا أرى شيء !! .

    بواسطة someone في يونيو 13, 2009

  17. 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

  18. شكراً لك ، أصبحت الأمور واضحة جداً الآن .. بارك الله فيك. ننتظر الدرس القادم :)

    بواسطة someone في يونيو 13, 2009

  19. معلومات تأسيسية مهمة ومفيدة جدا..

    شكرا أستاذ عمران

    بواسطة abdullah_kh في يونيو 13, 2009

  20. متابعه وسيتم التطبيق ان شاءالله..

    شكراً لك اخي عمران..

    بواسطة M!sS roo7 alm!sk في يونيو 13, 2009

  21. بارك الله فيك .. وشرحك مبسط

    بواسطة احمد في يونيو 13, 2009

  22. جزاك الله خيرا اخي الحبيب عمران دورة مشوقة و شرح رائع استفدت منه كثيرا و اصبح لدي معلومات جميلة فبارك الله فيك

    و الله بالنسبة لي اعتبر نفسي و قعت على كنز و هي مونتك الرائعة

    جعلها الله في ميزان حسناتك

    بواسطة eng mk في يونيو 14, 2009

  23. مرحبا اخ عمران

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

    Fatal error: Call to undefined function get_header() in C:\xampp\htdocs\wpaon_default\inclphp\index.php on line 1

    أين هي المشكله يا ترى؟

    بواسطة ميّـاسي في يونيو 15, 2009

  24. السلام عليكم، ملفي index.php و style.css لا يجب نقلهما داخل مجلد inclphp كما ذكرت في بداية هذا الموضوع، لا يمكن أن يعمل القالب إلا لوجود هذين الملفين في مجلد القالب مباشرة:
    wp-content/themes/wpaon_default

    بواسطة عمران عماري في يونيو 15, 2009

  25. عذرا لسؤالي
    الذي فهمته انه يجب ان يكون الورد برس مثبتا حتى يعمل القالب اليس كذلك؟

    بواسطة ميّـاسي في يونيو 16, 2009

  26. بورك فيك أخي
    شرح وافي وكافي
    لكن مثل الأخ يوسف
    أمامي امتحانات نهاية السنة
    فاصل قليل ولي عودهـ
    بورك في اخي الغالي

    بواسطة ياسر في يونيو 20, 2009

  27. بارك الله فيك .. فعلاً معلومات سهلة و مفيدة للغاية ..

    طريقة شرحك رائعة للغاية ما شاء الله.

    كم اتمنى وجود معلومات مشابهة و طريقة شرح مشابهة لبرنامج جوملة.

    بواسطة مرشد في يونيو 30, 2009

  28. أخ عمران

    التطبيقات المطلوبة على قالب wpaon default ؟
    لم أفهم ما الغرض إذا من الوورد بريس الذي تم تثبيته ؟

    هل نقوم بنقل مجلد القالب التموذجي أم ماذا بالضبط ؟

    أعتذر خبرتي معدومة وأتمنى أتعلم لو القليل :(

    بواسطة sunlight في يوليو 3, 2009

  29. أعتذر // تم إجتياز المشكلة

    لم انتبه لدرس ( قالب wpaon النموذجي لدورة قوالب ووردبريس )

    شكرا مجددا .. متابعه

    بواسطة sunlight في يوليو 3, 2009

ارسال تعليق