Замените постоянную ссылку/гиперссылку меню только названием меню/слизняком


Я не знаю, правильно ли я спрашиваю, но я постараюсь. Я делаю это для истории с государственной целью.

Код для получения меню без 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, но мне это не удалось.

Спасибо за любые ответы.

Author: Tauras, 2015-11-01

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.

 3
Author: Milo, 2015-11-01 01:51:54