كيفية : فصل التعقيبات عن التعليقات في WordPress 2.7 و أعلى
24 سبتمبر بواسطة : هشام صادق - وسوم : ووردبريس
في الإصدار رقم 2.7 من WordPress ظهرت العديد من المميزات الجديدة في ملفات القوالب و ذلك لتسهيل عملية تنسيق القوالب بشكل أفضل . و من المميزات الجديدة التي ظهرت في تلك النسخة هي تعديل نظام ظهور التعليقات و التي من خلالها يمكن التحكم بكيفية ظهورها بشكل كامل و كانت تشمل ظهور التعليقات المنبثقة Threaded Comments و التعديلات التي جرت داخل ملفات WordPress التي تقوم بتشغيل النظام .
و لكن المميزات الجديدة كانت قد سببت بعض المشاكل في التعديلات التي يقوم بها المستخدمون و منها عملية فصل التعقيبات Trackbacks عن تعليقات الزوار .
هذا الدليل متعلق فقط بالقوالب التي تستخدم نظام قوالب WordPress 2.7 و أعلى , أي أنه لا يمكن عمل ذلك في القوالب التي تستخدم WordPress 2.6 و أقل .
سنستخدم ملف comments.php من قالب Default الافتراضي في WordPress و يمكن بعد ذلك عمل نفس الخطوات على القوالب الأخرى . في البداية يجب عمل تعديل بسيط داخل ملف single.php بالبحث عن الكود التالي :
1 | <?php comments_template(); ?> |
و استبداله بالكود التالي :
1 | <?php comments_template('', true); ?> |
يقوم التعديل السابق بإبلاغ القالب بتكوين التعليقات بناءً على نوعها (تعليقات أو تعقيبات) .
ثم نقوم بتعديل ملف comments.php ,و نبحث عن الكود التالي :
1 | <?php if ( have_comments() ) : ?> |
و نقوم بإضافة السطر التالي أسفله مباشرة:
1 | <?php if ( ! empty($comments_by_type['comment']) ) : ?> |
و الآن نقوم بتقسيم التعليقات عن التعقيبات داخل ملف Comments.php , بالبحث عن الكود التالي :
1 2 3 | <ol class="commentlist"> <?php wp_list_comments(); ?> </ol> |
و نقوم باستبدال الكود السابق بالتالي :
1 2 3 4 | <ol class="commentlist"> <?php wp_list_comments('type=comment'); ?> </ol> <?php endif; ?> |
يقوم الكود السابق باستبدال العرض الافتراضي للتعليقات بعرض التعليقات فقط و هذا الجزء سيتم فيه عرض التعليقات . أما التعقيبات فسنقوم بتكوين العرض الخاص بها في الخطوة التالية .
الكود التالي سنقوم بإضافته مباشرة بعد التعديل السابق أي بعد endif و ذلك لعرض التعقيبات :
1 2 3 4 5 6 7 | <?php if ( ! empty($comments_by_type['pings']) ) : ?> <h3 id="pings">التعقيبات Trackbacks</h3> <ol class="commentlist"> <?php wp_list_comments('type=pings&callback=list_pings'); ?> </ol> <?php endif; ?> |
و أخيراً نقوم بإضافة الكود التالي و المسئول عن فصل التعليقات عن التعقيبات في ملف functions.php :
1 2 3 4 | <?php function list_pings($comment, $args, $depth) { $GLOBALS['comment'] = $comment; ?> <li id="comment-<?php comment_ID(); ?>"><?php comment_author_link(); ?> <?php } ?> |
و بالتالي ستتم عملية فصل التعقيبات عن التعليقات . هناك تعديل بسيط يمكن عمله إذا كنت تريد أن يقوم الموقع بعرض عدد التعليقات فقط و ليس عدد التعليقات و التعقيبات معاً و ذلك بإضافة الكود التالي في ملف functions.php :
1 2 3 4 5 6 7 8 9 10 11 12 | <?php add_filter('get_comments_number', 'comment_count', 0); function comment_count( $count ) { if ( ! is_admin() ) { global $id; $comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id)); return count($comments_by_type['comment']); } else { return $count; } } ?> |
اشترك في خلاصة الموقع
إذا أعجبتك هذه التدوينة, يمكنك الاشتراك في خلاصة الموقع حيث يمكنك متابعة الجديد أولاً بأول . خلاصة الموقع RSS . يمكنك أيضاً متابعتنا على @Alwank على Twitter لمتابعة جديدنا .




















جزاك الله كل خير.
وبارك الله فيك.
شكراً
شكرأ جزيلاً
ماشاء الله تبارك الله
سلمت الأيادي أخي هشام على هذا الطرح المميز …
فعلاً من المهم معرفة أكواد القالب لكي يتم التحكم بها أكثر … وبتالي ربط الكود بكود Css كي يتم التنسيق بشكل القالب وسلامت ظهور التعليقات منفردة عن التعقيبات …
وفي كل الأحوال التجربة هي خير برهان لظهور بنتيجه مفضلة …
تحياتي لك … أخوك توفي
رائع..
سلمت يداك أخي :)
:: بالمناسبة، تفقد صندوق الجنك ميل ;) خاصتكم ::
أزهار قلبي, phparabic, حسن
شكراً لكم على تعليقاتكم المشجعة :)
fpf; []f []g []g