Замените постоянную ссылку/гиперссылку меню только названием меню/слизняком
Я не знаю, правильно ли я спрашиваю, но я постараюсь. Я делаю это для истории с государственной целью.
Код для получения меню без ul
и li
:
$topmenu= array(
'container' => false,
'echo' => false,
'items_wrap' => '%3$s',
'depth' => 0
);
echo strip_tags(wp_nav_menu( $topmenu), '<a>');
На данный момент он дает mes только <a>
тег с href
, как и ожидалось.
Например:
<a href="http://example.com/page1">Page 1</a>
<a href="http://example.com/page2">Page 2</a>
<a href="http://example.com/page3">Page 3</a>
// etc
Мой вопрос:
Как отключить/скрыть полную постоянную ссылку/гиперссылку в атрибуте href
, но продолжать показывать страницу слизняк?
Что мне нужно, например:
<a href="/page1"></a>
// etc
Я пытался заставить эту работу измениться nav-menu-template.php
, но мне это не удалось.
Спасибо за любые ответы.
1 answers
Прежде всего -
Я пытался сделать так, чтобы эта работа изменилась
nav-menu-template.php
Никогда не редактируйте основной файл! Это всегда плохая идея. В лучшем случае вы потеряете свои изменения при обновлении ядра.
Для этого вы можете использовать nav_menu_link_attributes
фильтр для изменения атрибута href
. Этот фильтр будет применен к каждому пункту меню в отдельности.
В этом примере мы подключаем функцию к фильтру и str_replace
к home_url
с пустой строкой. Так что если наш дом URL-адрес http://example.com
, а URL-адрес http://example.com/something
, новое значение href
будет /something
. Затем мы return
измененные атрибуты.
function wpdev_remove_home_url_from_menu_items( $atts, $item, $args ) {
$atts['href'] = str_replace( home_url(), '', $atts['href'] );
return $atts;
}
add_filter( 'nav_menu_link_attributes', 'wpdev_remove_home_url_from_menu_items', 10, 3 );
В этом случае мы использовали только аргумент $atts
, но вы заметите, что есть два других аргумента - объект пункта меню и аргументы меню, на случай, если вам потребуется выполнить какую-либо проверку конкретных пунктов меню или меню, чтобы решить, как изменить атрибуты.
Вы также можете использовать этот фильтр для добавления дополнительных атрибутов, таких как data
, rel
, и target
.