我在互联网上找到了一个自定义菜单漫游器,它非常适合我的多级菜单。它几乎像手套一样合身。我做了一些微小的改进,但现在我需要限制输出中的字符数:
<li><a href="http:\\\\..."><span>Blah Blah Blah Blah Blah Blah Blah Blah Blah</span></a></li>
我在理解它的实际工作方式时遇到了一些问题,因此我可以通过PHP或CSS来限制它。这些方法似乎都不管用(当然都是我的错……)。
你能帮帮我吗?以下是extend Walker的代码:
class CSS_Menu_Walker extends Walker {
var $db_fields = array(\'parent\' => \'menu_item_parent\', \'id\' => \'db_id\');
function start_lvl(&$output, $depth = 0, $args = array()) {
$indent = str_repeat("\\t", $depth);
$output .= "\\n$indent<ul>\\n";
}
function end_lvl(&$output, $depth = 0, $args = array()) {
$indent = str_repeat("\\t", $depth);
$output .= "$indent</ul>\\n";
}
function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
global $wp_query;
$indent = ($depth) ? str_repeat("\\t", $depth) : \'\';
$class_names = $value = \'\';
$classes = empty($item->classes) ? array() : (array) $item->classes;
/* Add active class */
if (in_array(\'current-menu-item\', $classes)) {
$classes[] = \'active\';
unset($classes[\'current-menu-item\']);
}
/* Check for children */
$children = get_posts(array(\'post_type\' => \'nav_menu_item\', \'nopaging\' => true, \'numberposts\' => 1, \'meta_key\' => \'_menu_item_menu_item_parent\', \'meta_value\' => $item->ID));
if (!empty($children)) {
$classes[] = \'has-sub\';
}
$class_names = join(\' \', apply_filters(\'nav_menu_css_class\', array_filter($classes), $item, $args));
$class_names = $class_names ? \' class="\' . esc_attr($class_names) . \'"\' : \'\';
$id = apply_filters(\'nav_menu_item_id\', \'menu-item-\'. $item->ID, $item, $args);
$id = $id ? \' id="\' . esc_attr($id) . \'"\' : \'\';
$output .= $indent . $indent . \'<li\'. $value . \'>\';
$attributes = ! empty($item->attr_title) ? \' title="\' . esc_attr($item->attr_title) .\'"\' : \'\';
$attributes .= ! empty($item->target) ? \' target="\' . esc_attr($item->target ) .\'"\' : \'\';
$attributes .= ! empty($item->xfn) ? \' rel="\' . esc_attr($item->xfn ) .\'"\' : \'\';
$attributes .= ! empty($item->url) ? \' href="\' . esc_attr($item->url ) .\'"\' : \'\';
$item_output = $args->before;
$item_output .= \'<a\'. $attributes .\'><span>\';
$item_output .= $args->link_before . apply_filters(\'the_title\', $item->title, $item->ID) . $args->link_after;
$item_output .= \'</span></a>\';
$item_output .= $args->after;
$output .= apply_filters(\'walker_nav_menu_start_el\', $item_output, $item, $depth, $args);
}
谢谢你!!!