الثلاثاء، 3 سبتمبر 2013

شرح تصميم قوالب ووردبريس -الجزء السادس-


شرح تصميم قوالب ووردبريس -الجزء السادس-
فى الدرس السابق، تعرفنا على كيفية برمجة أنواع للتدوينات، أما فى هذا الدرس -بإذن الله- سنتعرف على كيفية برمجة القائمة الجانبية SideBar، سنتعرف على كيفية تسجيلها فى لوحة تحكم الووردبريس، ومن ثم كيفية عرضها وعرض بعض القوائم الإفتراضية إن لم يكن تم إضافة آية قوائم فى هذا السايدبار من المستخدم.
أولاً: لتسجيل السايدبار فى لوحة تحكم الووردبريس؛ كي يستطيع المستخدم بإضافة بعض القوائم Widgets بها، يجب أن تقوم بتسجيل هذا السايدبار حتى يتسنى للمستخدم أن يضيف إليها بعض القوائم.
ثانيًا: قبل تسجيل السايدبار، يجب أن نقوم بخطوة أخرى، نحن نعلم أننا قد قمنا بإستخدام دالة get_sidebar فى ملف index.php من قبل لكي يتم إضافة السايدبار، وتلك الدالة تلقائيًا تقوم بتحميل ملف sidebar.php، لذلك سنقوم بعمل ملف جديد يدعى sidebar.php بجوار ملف index.php.
فى ملف sidebar.php سأقوم بإضافة كود الـHTML الخاص بعرض السايدبار، وهو كالكود التالي:
<div id="sidebar" class="sidebar">
<div class="block-post">
<h2>Title</h2>
Content
</div>
</div>
لاحظ أن: كل قائمة جديدة فى السايدبار تبدأ بالديف الذي يحتوى على الكلاس block-post (وهو الكود الذي سيتم تكراره مع كل قائمة جديدة يتم إضافتها فى السايدبار).
ثالثًا: لتسجيل السايدبار، يجب أن نقوم بفتح ملف functions.php، ثم نبدأ بالعمل !
سنقوم أولاً بعمل جملة شرطية للتحقق من إذا كانت توجد دالة فى نسخة الووردبريس التي نعمل عليها تدعى register_sidebar، فقط يستخدم أى مستخدم القالب على إصدار قديم لووردبريس ، ولذلك سنقوم بهذا التحقق، وإن كانت تلك الجملة الشرطية ترجع TRUE، فسيتم تسجيل السايدبار، الآن جملة التحقق ستكون هكذا:
// Register Sidebar
if(function_exists('register_sidebar')){

}
لتسجيل السايدبار الواحد سنحتاج إلى تسجيل 7 معلومات، كل معلومة منهم لها اسم محدد، وتلك هي قائمة تلك الاسماء وشرحها:
1- ID، وهو الاسم الكودي للسايدبار الذي سوف نستخدمه لاحقًا فى أماكن أخرى من الكود.
2- NAME، وهو اسم السايدبار الذي سيتم عرضه للمستخدم فى لوحة تحكم الووردبريس.
3- DESCRIPTION، وهو وصف السايدبار الذي سيتم عرضه للمستخدم فى لوحة تحكم الووردبريس.
4- Before-widget، وهو الكود المُراد وضعه قبل بداية أى قائمة Widget جديدة يتم إضافتها إلى السايدبار.
5- After-widget، وهو الكود المُراد وضعه بعد نهاية أى قائمة جديدة يتم إضافتها إلى السايدبار.
6- Before-title، وهو الكود المُراد وضعه قبل عنوان أى قائمة جديدة.
7- After-title، وهو الكود المُراد وضعه بعد نهاية عنوان أى قائمة جديدة.
جميع تلك البيانات السابقة تخزن على شكل بارامتر (عبارة عن مصفوفة) لدالة register_sidebar، حيث أن كل اسم من الأسماء السابقة يكون عبارة عن Key فى المصفوفة ويتم إضافة القيمة التي نريدها لها.
نلاخظ أننا فى كود الـHTML الذي تم وضعه فى بداية الدرس أننا قبل أى قائمة جديدة نقوم بكتابة السطر التالي:
<div class="block-post">
وبعد نهاية كل قائمة جديدة نقوم بإضافة السطر التالي:
</div>
وأيضًا قبل أى عنوان قائمة نقوم بإضافة السطر التالي:
<h2>
وبعد كل أى عنوان نقوم بإضافة السطر التالي:
</h2>
وتلك هي النقاط الأربع الأخيرة فى المعلومات التي نريد تخزينها فى المصفوفة، ولذلك سيصبح كود تسجيل السايدبار كالتالي:
if(function_exists('register_sidebar')){
register_sidebar(array(
"id"=> "main-sidebar",
"name"=> "Main Sidebar",
"description"=> "The Main Sidebar in the right",
"before-widget" => "<div class='block-post'>",
"after-widget" => "</div>".
"before-title" => "<h2>",
"after-title" => "</h2>"
));
}
والآن قمنا بتسجيل السايدبار بنجاح !
رابعًا: سنقوم بالدخول إلى ملف sidebar.php، وحذف الكود الذي سيتم تكراره مع كل قائمة جديدة، ليصبح الملف يحتوى على هذا الكود فقط:
<div id="sidebar" class="sidebar">

</div>
والآن سنقوم بعمل جملة شرطية، للتحقق من إن لا يوجد دالة dynamic_sidebar، وهي الدالة المسئولة عن عرض القوائم فى السايدبار أو ألا يكون بإستطاعة دالة dynamic_sidebar عرض السايدبار المسمي بـmain-sidebar (لاحظ أننا استخدمنا الاسم الكودي للسايدبار)، ففى تلك الحالة لن تكون هنالك آية قوائم فى السايدبار ولذلك سيتم عرض رسالة تقول بأنه لا يوجد آية قوائم حتى الآن تم إضافتها من المدير، كما بالكود التالي:
if(!function_exists('dynamic_sidebar') || !dynamic_sidebar('main-sidebar')){
?>
There is no Widgets Yet !
<?php
}
أو ببساطة يمكنك بدلاً من عرض تلك الرسالة وضع كود HTML يكون بمثابة قوائم إفتراضية يتم وضعها حتى يقوم المستخدم بإضافة قوائمه الخاصة من لوحة تحكم الووردبريس.
أما فى حالة أنك تريد وجود سايدبار فى اى مكان آخر، فى الفوتر مثلاً، فما عليك سوى أن تقوم بتسجيله مثلما قمنا بتسجيل السايدبار السابق فى ملف functions.php، ومن ثم الذهاب إلى مكانه فى ملف footer.php، ومن ثم حذف الكود الذي سيتم تكراره مع كل قائمة جديدة، ومن ثم إستخدام دالة get_sidebar، وتلك الدالة ستقوم بتمرير بارامتر واحد فقط لها، وهذا البارامتر هو الاسم الكودي للسايدبار الذي تريد عرضه فى مكان تلك الدالة.
أما إذا أردت أن تقوم بإضافة رسالة تفيد أنه لا توجد قوائم فى تلك السايدبار التى بالفوتر مثلاً، فستقوم بإنشاء ملف يدعى sidebar-ID، حيث ستقوم بإستبدال كلمة ID بالإسم الكودي لهذا السايدبار، ثم تقوم بوضع نفس الكود الذي قمت بوضعه فى ملف sidebar.php، ولكن مع تغيير الاسم الكودي.
المزيد من المواضيع:

0 التعليقات:

إرسال تعليق