有没有一种方法可以使用wp\\u nav\\u menu将类添加到菜单中的每个第n项?
正在尝试创建列,但需要将“last”类添加到第3项。
干杯Dc公司
有没有一种方法可以使用wp\\u nav\\u menu将类添加到菜单中的每个第n项?
正在尝试创建列,但需要将“last”类添加到第3项。
干杯Dc公司
最终还是这样工作的。。。
function add_nthclass($items, $args){
$scb = get_object_vars($args);
switch($scb[\'menu\']) {
case \'mainpages\':
$nth = 2;
$items = explode(\'</li>\',$items);
$newitems = array();
// loop through the menu items, and add the new link at the right position
foreach($items as $index => $item) {
if(($index+1) % $nth == 0){
$newitems[] = str_replace(\'class="\', \'class="last \', $item);
}else{
$newitems[]= $item;
}
}
// finally put all the menu items back together into a string using the ending <li> tag and return
$newitems = implode(\'</li>\',$newitems);
case \'footer\':
// footer menu nth funcs...
default:
$newitems = $items;
} // End switch
return $newitems;
}
add_filter(\'wp_nav_menu_items\', \'add_nthclass\', 10, 2);
您可以使用jQuery来实现这一点。在标题中尝试以下操作:
$(document).ready(function() {
$("#mymenu li:nth-child(3n+3)").addClass("last");
});
Note : 要想让它发挥作用,你需要enqueued jQuery..last
并将其应用于#nav li:nth-child(3)
. 如果您需要针对每三个菜单项#nav li:nth-child(3n+3)
幸运的是,有一些很好的javascript库和jQuery插件为IE添加了css3支持<;9
如果您只想添加类.last
对于最后一个菜单项,这是一种更短的方法:
/**********************************************************/
/* add .last to last menu item */
/**********************************************************/
add_filter(\'wp_nav_menu\', \'add_last\');
function add_last($output) {
$output = substr_replace($output, \'class="last menu-item\', strripos($output, \'class="menu-item\'), strlen(\'class="menu-item\'));
return $output;
};
如果您还有子菜单,则可以使用以下代码(感谢this article).add_filter(\'wp_nav_menu\', \'add_last\');
function add_last($menuHTML) {
$last_items_ids = array();
// Get all custom menus
$menus = wp_get_nav_menus();
// For each menu find last items
foreach ( $menus as $menu_maybe ) {
// Get items of specific menu
if ( $menu_items = wp_get_nav_menu_items($menu_maybe->term_id) ) {
$items = array();
foreach ( $menu_items as $menu_item ) {
$items[$menu_item->menu_item_parent][] .= $menu_item->ID;
}
// Find IDs of last items
foreach ( $items as $item ) {
$last_items_ids[] .= end($item);
}
}
}
foreach( $last_items_ids as $last_item_id ) {
$items_add_class[] .= \' menu-item-\'.$last_item_id;
$replacement[] .= \' menu-item-\'.$last_item_id . \' last\';
}
$menuHTML = str_replace($items_add_class, $replacement, $menuHTML);
return $menuHTML;
};
我正在使用菜单API,我想切换到其他菜单,但出于某种原因,它保留了第一个菜单这是我的密码在函数中。php add_action( \'init\', \'register_my_menus\',10 ); function register_my_menus() { register_nav_menu(\'main-navigation\', \'Main Navigation\'); } 下面是我的主题文件(header.ph