it-swarm.asia

كيف يمكنني إضافة مخصص المغلق لبعض الحاجيات فقط

لديّ شريط جانبي ديناميكي قياسي باستخدام register_sidebar و dynamic_sidebar وأحتاج إلى عنصر واجهة المستخدم الأخير في الشريط الجانبي (والذي لن يكون له عدد محدد من عناصر واجهة المستخدم) لإضافة فئة مميزة ('last_widget') إلى <li> الذي يلفها. ما هي الطريقة الأفضل لعمل هذا؟

6
John P Bloch

مرحبا جون :

أعتقد أن هذا هو ما تبحث عنه (أشرح الكود أظن أنه توضيحيًا ؛ أعلمني إن لم يكن):

<?php
add_filter('dynamic_sidebar_params','my_dynamic_sidebar_params');
function my_dynamic_sidebar_params($params) {
    $sidebar_id = $params[0]['id'];
    $sidebar_widgets = wp_get_sidebars_widgets();
    $last_widget_id = end($sidebar_widgets[$sidebar_id]);
    if ($last_widget_id==$params[0]['widget_id'])
        $params[0]['before_widget'] = str_replace(' class="',' class="last_widget ',$params[0]['before_widget']);
    return $params;
}
6
MikeSchinkel

يمكنك أيضًا استخدام CSS لتحديد آخر عنصر واجهة مستخدم باستخدام: last-child (على الرغم من أن IE لا ترغب في ذلك) ، أو استخدم jQuery لتحديده. لكن كود PHPأعلاه ربما هو أفضل طريقة للقيام بذلك.

0
Shaun

لقد كتبت تصحيحًا يفعل ذلك في الكود الأساسي ، التذكرة ذات الصلة هي # 12615 - أضف "الأول" و "الأخير" من فئة CSS إلى كل عنصر واجهة مستخدم في الشريط الجانبي (Frontend)

يعد patch حلًا عمليًا ، فهناك بعض الأجزاء الداخلية التي تعمل على استخدام end () في صفيف الشريط الجانبي ، حيث يشير mike إلى أن كوده لا يعمل بشكل صحيح (نعم ، كان من السهل جدًا ، الحق: P).

اسمحوا لي أن أعرف إذا كان التصحيح لا ينطبق نظيفة لفترة أطول. لدي هذا يعمل بشكل جيد للغاية على 2.9.2 المواقع.

0
hakre