Дозволяє змінити заголовок пункту меню (анкор посилання).
Використання
add_filter( 'nav_menu_item_title', 'wp_kama_nav_menu_item_title_filter', 10, 4);
/**
* Function for `nav_menu_item_title` filter-hook.
*
* @param string $title Menu item's title.
* @param WP_Post $menu_item Текущее меню елемент об'єкта.
* @param stdClass $args An object of wp_nav_menu() arguments.
* @param int $depth Відомості про меню. Використовується для padding.
*
* @return string
*/
function wp_kama_nav_menu_item_title_filter( $title, $menu_item, $args, $depth ){
// Filter...
return $title;
}- $title
(рядок) - Заголовок пункту меню.
- $item
(WP_Post) Об’єкт поточного меню. Приклад:
WP_Post Object
(
[ID] => 265
[post_author] => 1
[post_date] => 2018-04-07 09:45:46
[post_date_gmt] => 2018-04-07 06:45:46
[post_content] =>
[post_title] => Зворотній зв'язок
[post_excerpt] =>
[post_status] => publish
[comment_status] => closed
[ping_status] => closed
[post_password] =>
[post_name] => 265
[to_ping] =>
[pinged] =>
[post_modified] => 2018-04-19 00:20:29
[post_modified_gmt] => 2018-04-18 21:20:29
[post_content_filtered] =>
[post_parent] => 0
[guid] => http://wp-test.ru/?p=265
[menu_order] => 1
[post_type] => nav_menu_item
[post_mime_type] =>
[comment_count] => 0
[filter] => raw
[db_id] => 265
[menu_item_parent] => 0
[object_id] => 214
[object] => page
[type] => post_type
[type_label] => Сторінка
[url] => http://wp-test.ru/post-99
[title] => Зворотній зв'язок
[target] =>
[attr_title] =>
[description] =>
[classes] => Array
(
[0] =>
[1] => menu-item
[2] => menu-item-type-post_type
[3] => menu-item-object-page
)
[xfn] =>
[current] =>
[current_item_ancestor] =>
[current_item_parent] =>
)
- $args
(stdClass) Об’єкт з аргументами функції wp_nav_menu() . Приклад:
stdClass Object
(
[menu] => WP_Term Object
(
[term_id] => 21
[name] => Моє перше меню
[slug] => moe-pervoe-menu
[term_group] => 0
[term_taxonomy_id] => 21
[taxonomy] => nav_menu
[description] =>
[parent] => 0
[count] => 3
[filter] => raw
)
[container] => div
[container_class] =>
[container_id] =>
[menu_class] => primary-menu
[menu_id] =>
[echo] => 1
[fallback_cb] => wp_page_menu
[before] =>
[after] =>
[link_before] =>
[link_after] =>
[items_wrap] => <ul id="%1$s" class="%2$s">%3$s</ul>
[item_spacing] => preserve
[depth] => 0
[walker] =>
[theme_location] => primary
)
- $depth
(число) - Рівень пункту меню. Доданий до версії 4.1.0. Використовується для відступів. Верхні пункти меню мають $depth = 0, вкладені у яких $depth = 1 тощо.
Приклади
#1 Додати іконку перед заголовком пункту меню
У прикладі використовується шрифтова іконка з набору dashicons .
add_filter( 'nav_menu_item_title', 'filter_nav_menu_item_title', 10, 4);
function filter_nav_menu_item_title( $title, $item, $args, $depth ) {
$title = '<span class="dashicons dashicons-wordpress-alt"></span> ' . $title;
return $title;
}Аналогічний результат може бути отриманий під час виведення меню:
wp_nav_menu([
'link_before' => '<span class="dashicons dashicons-wordpress-alt"></span>',
]);