@DiegoKKC

Как создать фильтр для ссылок меню WordPress?

При создание меню функцией wp_nav_menu() имеем такие сслыки:
<a href="...">Пункт меню</a>
Нужно заменить их на ссылки такого вида:
<a href="..."><span data-hover="Пункт меню">Пункт меню</span></a>

Подскажите как это сделать правильно фильтром.
  • Вопрос задан
  • 2983 просмотра
Решения вопроса 1
@DiegoKKC Автор вопроса
Вариант решения:
В нашей функции добавления меню (wp_nav_menu) есть замечательный атрибут $walker.
codex.wordpress.org/Function_Reference/wp_nav_menu
По ссылке выше есть пример его использования. Не буду его приводить полностью, лишь необходимый отрывок.
$item_output = sprintf( '%1$s<a%2$s>%3$s%4$s%5$s</a>%6$s',
        $args->before,
        $attributes,
        $args->link_before,
        apply_filters( 'the_title', $item->title, $item->ID ),
        $args->link_after,
        $args->after
    );

Меняем на
$item_output = sprintf( '%1$s<a%2$s><span data-hover="%3$s%4$s%5$s">%3$s%4$s%5$s</span></a>%6$s',
        $args->before,
        $attributes,
        $args->link_before,
        apply_filters( 'the_title', $item->title, $item->ID ),
        $args->link_after,
        $args->after
    );

И получаем необходимый результат. Разобравшись что к чему вы можете сделать мелкие изменения для себя ^_^
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Комментировать
seoperin
@seoperin
Full stack web developer. Laravel / Vue
'link_before'     => '<span data-hover="....">',
'link_after'      => '</span>',

а вот переменную так передать не получится, на сколько я понимаю
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы