it-swarm.asia

كيفية تحديد الصفحة النشطة الحالية يدويًا باستخدام wp_nav_menu ()

هل هناك طريقة لتحديد الصفحة التي "نشطة" يدويًا عند استخدام wp_nav_menu()؟

لديّ صفحة "منتجات" ، وفي هذه الصفحة لدي روابط لمختلف التصنيفات (الديناميكية) المخصصة. عندما أقوم بالنقر فوق أحد هذه التصنيفات ، أظل على صفحة "المنتجات" ولكن wp_nav_menu() يفقد الإشارة إلى هذه الحقيقة أنني ما زلت في صفحة "المنتجات". هل هناك طريقة يمكنني إصلاح هذا؟

شكر!

جون

9
Jon

إذا كنت ترغب فقط في إضافة فئة current_page_item إلى عنصر قائمة واحد ، يمكنك توصيل عامل التصفية nav_menu_css_class وإضافة تلك الفئة إذا لزم الأمر. يطلق عليه عند طباعة القائمة .

إذا كنت ترغب في الوصول إلى القائمة بأكملها وإضافة فئات ، فقم بالتوصيل بفلتر wp_get_nav_menu_items ، حيث تحصل على مجموعة $items بأكملها. يمكنك تحرير خصائص classes للعناصر الفردية.

12
Jan Fabry

Jon طالما أنك تستخدم <body <?php body_class(); ?>> ، فسيقوم WordPress بتعيين الفئة current_page_item لقائمتك مع current_page_parent إذا كنت تستخدم القوائم المنسدلة.

2
Chris_O

ذكر جان مرشح nav_menu_css_class ، لذلك بحثت عنه وكان هذا المثال مفيدًا لي المصدر: https://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_css_class

function my_special_nav_class( $classes, $item ) {
    if ( is_single() && $item->title == 'Blog' ) {
        $classes[] = 'special-class';
    }
    return $classes;
}    
add_filter( 'nav_menu_css_class', 'my_special_nav_class', 10, 2 );
0
Ross