Библиотека Timber не поддерживает фильтр nav_menu_link_attributes? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь использовать nav_menu_link_attributes , чтобы добавить что-то еще к «href» одного элемента меню. Мне кажется, библиотека Timber не поддерживает этот фильтр?

Мой код работает должным образом с двадцатью двадцатью, однако он не вступает в силу для изменения атрибута, когда я переключаю тему на Gesso-WP , это зависит от библиотеки Timber. Также я не могу найти какой-либо другой фильтр, кроме «nav_menu_css_class» внутри MenuItem class https://github.com/timber/timber/blob/master/lib/MenuItem.php

function filter_menu_item_href( $atts ) {
    if ( strpos( $atts['href'], 'site/SPageNavigator/my_account.html' ) !== false ) {
        $atts['href'] .= '?NEXTURL=' . home_url();
    }

    return $atts;
}
add_filter( 'nav_menu_link_attributes', 'filter_menu_item_href' );

Какие есть варианты фильтрации в Timber для изменения этого единственного значения атрибута?

1 Ответ

0 голосов
/ 31 марта 2020

Я наконец обработал это с помощью "wp_nav_menu_objects" . Этот фильтр присутствует в классе Menu из плагина библиотеки Timber: https://github.com/timber/timber/blob/master/lib/Menu.php

function filter_menu_item_href( $menu ) {
    foreach ( $menu as $item ) {
        if ( strpos( $item->url, 'site/SPageNavigator/my_account.html' ) !== false ) {
            $item->url .= '?NEXTURL=' . home_url();
        }
    }

    return $menu;
}
add_filter( 'wp_nav_menu_objects', 'filter_menu_item_href' );
...