هل هناك طريقة لتحديد الصفحة التي "نشطة" يدويًا عند استخدام wp_nav_menu()
؟
لديّ صفحة "منتجات" ، وفي هذه الصفحة لدي روابط لمختلف التصنيفات (الديناميكية) المخصصة. عندما أقوم بالنقر فوق أحد هذه التصنيفات ، أظل على صفحة "المنتجات" ولكن wp_nav_menu()
يفقد الإشارة إلى هذه الحقيقة أنني ما زلت في صفحة "المنتجات". هل هناك طريقة يمكنني إصلاح هذا؟
شكر!
جون
إذا كنت ترغب فقط في إضافة فئة current_page_item
إلى عنصر قائمة واحد ، يمكنك توصيل عامل التصفية nav_menu_css_class
وإضافة تلك الفئة إذا لزم الأمر. يطلق عليه عند طباعة القائمة .
إذا كنت ترغب في الوصول إلى القائمة بأكملها وإضافة فئات ، فقم بالتوصيل بفلتر wp_get_nav_menu_items
، حيث تحصل على مجموعة $items
بأكملها. يمكنك تحرير خصائص classes
للعناصر الفردية.
Jon طالما أنك تستخدم <body <?php body_class(); ?>>
، فسيقوم WordPress بتعيين الفئة current_page_item
لقائمتك مع current_page_parent
إذا كنت تستخدم القوائم المنسدلة.
ذكر جان مرشح 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 );