没有可用于将自定义属性添加到li
要素唯一可能的方法是使用定制助行器。
方法如下:(functions.php或自定义插件)
class so244415_custom_walker extends Walker_Nav_Menu {
public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
//your code here. the line you want to edit is:
//$output .= $indent . \'<li\' . $id . $class_names .\'>\';
}
}
查找文件
class-walker-nav-menu.php
wp内部包含并复制特定功能中的所有内容
start_el
并根据您的需要进行编辑。
您可以这样调用菜单:(在主题文件中,您可以在其中调用菜单)
wp_nav_menu( array(
\'walker\' => new so244415_custom_walker( $args ), /*( $args ) is optional...*/
));
另一种选择是
function so244415_walker_nav_menu_start_el($item_output, $item, $depth, $args) {
//some regex/str_replace here
return $item_output;
}
add_filter( \'walker_nav_menu_start_el\', \'so244415_walker_nav_menu_start_el\', 10, 4);
但我并不是这个解决方案的最大粉丝,因为regex之类的东西并不是编辑html的最佳方式。