我正在研究 WordPress 设计,我想创建一个自定义菜单。
$items = wp_get_nav_menu_items('Menu', array(
'order' => 'ASC',
'orderby' => 'menu_order',
'post_type' => 'nav_menu_item',
'post_status' => 'publish',
'output' => ARRAY_A,
'output_key' => 'menu_order',
'nopaging' => true,
'update_post_term_cache' => false));
echo '<pre>'; print_r($items); echo '</pre>';
foreach($items as $item){
echo '<div class="menu_entry"><a href="'.$item->url.'">'.$item->title.'</a></div>';
}
问题是,我需要“当前页面”类,这是 WordPress 在标准菜单中创建的。
有什么想法如何添加这个类吗?
解答时间:
WordPress添加这些类的函数是_wp_menu_item_classes_by_context() https://developer.wordpress.org/reference/functions/_wp_menu_item_classes_by_context/。当你使用时这已经被调用了wp_nav_menu
但不是wp_get_nav_menu_items
。幸运的是,后者提供了一个过滤器,所以我们可以自己做:
add_filter( 'wp_get_nav_menu_items', 'prefix_nav_menu_classes', 10, 3 );
function prefix_nav_menu_classes($items, $menu, $args) {
_wp_menu_item_classes_by_context($items);
return $items;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)