السبت، 7 سبتمبر 2013

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


شرح تصميم قوالب ووردبريس -الجزء الثامن-
فى الدرس السابق، تعرفنا على طريقة برمجة صفحة عرض التدوينة single.php، وفى هذا الدرس -بإذن الله- سنكمل ما بدأناه الدرس الماضي، وسنتحدث عن الجزء الخاص بعرض معلومات الكاتب، والآن لنبدأ فى العمل الممتع !
الآن لدي بداخل صفحة single.php، لدي جزء خاص بعرض معلومات كاتب التدوينة، وتظهر تلك المعلومات عبر الكود التالي:
الآن سنقوم بإستبدال رابط اسم الكاتب بدالة the_author_posts_link؛ ليصبح الكود كالتالي:
والآن لعرض وصف الكاتب، أو بمعنى أدق تفاصيل عن الكاتب، سنقوم بكتابة دالة the_author_meta، وهي دالة ترجع لنا بعض المعلومات عن الكاتب على حسب البارامتر المُدخل إليها، فى حالتنا سنقوم بإدخال البارامتر the_author_meta ليتم عرض وصف الكاتب؛ ليصبح الكود كالتالي:
فى الدرس السابق، تحدثنا عن أننا مكان عرض التعليقات سنقوم بوضع دالة comments_template، ليقوم بتحميل ملف comments.php، والذي سنقوم بإنشاؤه الآن لنبدأ بالعمل عليه !
بدايةً فى ملف comments.php، سنقوم بوضع تحقق لمعرفة ما إذا كان المستخدم له الحق فى تحميل هذا الملف أم لا، وإن لم يكون له تلك الصلاحيات، سيتم إغلاق الملف، لذلك سنضع هذا الكود فى أول الملف:
if (!empty($_SERVER['SCRIPT_FILENAME']) &&
basename($_SERVER['SCRIPT_FILENAME'])=='comments.php'){
die ('Please do not load this page directly. Thanks!');
}
الآن علينا التحقق من إن كانت التدوينة الموجود بها تلك التعليقات محمية بكلمة سر أم لا عبر دالة post_password_required، وإن كانت محمية بكلمة سر فسنعرض رسالة للمستخدم بأنه عليه أن يقوم بإدخال كلمة السر لعرض التعليقات، إذًا فلنضيف هذا الكود أيضًا:
if ( post_password_required() ) { ?>

This post is password protected. Enter the password to view comments.



return;
}
الآن سأضع لكم الكود الأساسي، الذي سنعمل عليه، ثم سأقوم بشرحه لكي نفهمه جميعًا:

if(have_comments()){
?>
Display

}elseif(!comments_open() && !is_page() && post_type_supports(get_post_type(),'comments')){
?>

Comments are closed !



}
?>
قمنا بإختبار دالة have_comments لكي نرى ما إن كانت التدوينة تحتوى على تعليقات أم لا، وفى تلك الحالة سيتم عرض Display، أى أننا سنقوم بعرض التعليقات مكان كلمة Display، ثم قمنا بعمل تحقق إذا كانت التعليقات غير مفتوحة (comments_open)، وهي ليست صفحة بل تدوينة (is_page)، ونوع التدوينة يدعم التعليقات، وذلك عن طريق دالة post_type_supports، وهي تأخذ بارامترين كما هو واضح، البارامتر الأول نوع التدوينة، وهو ما حصلنا عليه عبر دالة get_post_type والتي من خلالها نحصل على نوع التدوينة، والبارامتر الثاني وهو اسم الشيء المُراد التحقق من إن كان نوع التدوينة يدعمه أم لا، وفى حالتنا نحن نتحقق عن التعليقات؛ لذلك كتبنا comments.
والآن قم بوضع كود HTML الخاص بعرض التعليقات بدلاً من كلمة Display، ثم إتبع الآتي لعرض التعليقات:
1- دالة comments_number، وهي تأخذ ثلاثة بارامترات، البارامتر الأول، النص الذي سيتم عرضه فى حالة عدم وجود أى تعليق، والثاني النص الذي سيتم عرضه فى حالة وجود تعليق واحد، والأخير فى حالة وجود أكثر من تعليق، وفي تلك الحالة لعرض عدد التعليقات سيتم إستخدام العلامة المئوية %.
2- دالة wp_list_comments، وهي لعرض التعليقات بشكل إفتراضي، ولكن التعليقات ستظهر بصورة غير متناسقة مع القالب، لذلك سنقوم بإدخال بارامتر لها كالتالي:
wp_list_comments('callback=my_comments');
حيث أن my_comments، ستكون عبارة عن دالة مسئولة عن عرض التعليقات، تلك الدالة بالطبع سنقوم بإنشائها بداخل ملف functions.php، ولذلك سنقوم الآن بفتح ملف functions.php، ومن ثم إنشاء دالة جديدة بذلك الإسم، كالتالي:
function my_comments(){

}
ولكن تلك الدالة سنقوم ببرمجتها فى الدرس القادم -بإذن الله-، أما الآن سنترك ذلك، ونقوم ببرمجة نظام صفحات التعليقات، حيث أن التدوينة إذا إحتوت على عدد كبير من التعليقات لا يمكن عرضها جميعها فى صفحة واحدة، ولذلك سنقوم ببرمجة نظام صفحات لها، الآن بداخل ملف comments.php، أسفل دالة wp_list_comments سنقوم بوضع كود HTML الخاص بعرض الصفحات، وسنقوم بإستخدام دالة previous_comments_link لوضع رابط التعليقات الأقدم، وهي دالة تأخذ بارامتر واحد وهو النص الذي سيتم عرضه لهذا الرابط، أما بالنسبة للتعليقات الأحدث، فسيتم عرض رابط لها عن طريق دالة next_comments_link وهي أيضًا تأخذ بارامتر واحد وهو النص الذي سيتم عرضه للرابط.
ولكن لنجعل هذا الكود أكثر ذكاءًا، حيث يتم إدراج روابط الإنتقال بين صفحات التدوينة تحت هذا الشرط:
if(get_comment_pages_count > 1 && get_option('page_comments')){
}
حيث أننا فى هذا الشرط قمنا بالتحقق من تفعيل إختيار تعدد صفحات التدوينات من لوحة التحكم، ووجود أكثر من صفحة واحدة فى التدوينة ليتم عرض روابط الإنتقال بين الصفحات.
تبقى لنا الآن شيئان فقط، وهما برمجة دالة my_comments لعرض التعليقات، والشيء الثاني وهو وضع نموذج إنشاء تعليق جديد، وذلك ببساطة يتم عن طريق دالة comment_form فقط، ضعها فى مكانها المناسب وسيتم عرض نموذج إنشاء تعليق جديد.
والآن يتبقى لنا فقط برمجة دالة my_comments لعرض التعليقات؛ لإنهاء جميع ما يخص التعليقات، وذلك ما سنقوم به فى الدرس القادم -بإذن الله-.

ليست هناك تعليقات:

إرسال تعليق