Skip to content

Instantly share code, notes, and snippets.

@campusboy87
Last active April 15, 2021 11:39
Show Gist options
  • Save campusboy87/187f982430b8425fd1d4a2ec30c9fcd0 to your computer and use it in GitHub Desktop.
Save campusboy87/187f982430b8425fd1d4a2ec30c9fcd0 to your computer and use it in GitHub Desktop.
Добавляет иконку элементам LI в меню WordPress, у которых есть дочерние элементы.
<?php
// 1 вариант. Менее надёжен, вдруг класс '"menu-item-has-children" быд удалён через фильтр.
add_filter( 'walker_nav_menu_start_el', 'filter_walker_nav_menu_start_el', 10, 4 );
function filter_walker_nav_menu_start_el( $item_output, $item, $depth, $args ) {
var_dump( $depth, $item );
if ( ! empty( $item->classes ) && in_array( 'menu-item-has-children', $item->classes ) ) {
$item_output = '<span>Иконка</span>' . $item_output;
}
return $item_output;
}
// 2 вариант. Более надёжный, но более сложный.
add_filter( 'wp_nav_menu_objects', 'filret_wp_nav_menu_objects', 10, 2 );
function filret_wp_nav_menu_objects( $sorted_menu_items, $args ) {
foreach ( $sorted_menu_items as & $item ) {
$item->has_children = in_array( 'menu-item-has-children', $item->classes );
}
return $sorted_menu_items;
}
add_filter( 'walker_nav_menu_start_el', 'filter_walker_nav_menu_start_el', 10, 4 );
function filter_walker_nav_menu_start_el( $item_output, $item, $depth, $args ) {
if ( $item->has_children ) {
$item_output = '<span>Иконка</span>' . $item_output;
}
return $item_output;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment