创建自定义助行器是解决这一问题的有效方法,也是我想到的第一件事,但这并不是绝对必要的。可以通过过滤器实现这一点,尽管可以轻度滥用其中一个:)
概念验证:
function insert_image_wpse_130477($item_output) {
remove_filter(\'walker_nav_menu_start_el\',\'insert_image_wpse_130477\');
$prepend = apply_filters(\'my_item_prepend\',\'\');
return $prepend.$item_output;
}
function check_id_wpse_130477($id, $item, $args) {
if (\'menu-item-6\' == $id) { // edit for your circumstances
add_filter(
\'my_item_prepend\',
function() use ($id) {
// add logic to conditionally add your images based on the ID
return \'##\'.$id.\'##\';
}
);
add_filter(
\'walker_nav_menu_start_el\',
\'insert_image_wpse_130477\'
);
}
return $id;
}
add_filter(\'nav_menu_item_id\',\'check_id_wpse_130477\',1,3);
我可以想出其他几种方法来实现这一点——例如,一个类,或者一个更复杂的回调和一个静态变量——但这可能是最容易遵循的方法。