Intereting Posts
Показать содержимое другого домена внутри WordPress WordPress get_the_content получает дочерний элемент как значение p Сохранение кода вставки из виджета панели мониторинга Сохранение метаданных WordPress: отображение слова Array при выборе Паганирование работает локально, но не на живом сайте Как добавить / сохранить пользовательское поле в пользовательских настройках / профиле «Список флажков» Woocommerce Установите ставку налога на уровне корзины Как достичь определенной страницы (URL), доступной определенным пользователям Включите красивые шаблоны WooCommerce 2 на всех страницах сайта Флажок «Видимость поисковой системы» после индексирования Почему этот оператор IF не работает? Использование update_option () и get_option () – эхо эскиз строк с экранированием Как структурировать плагин в несколько файлов с помощью классов? Добавить соответствующий тег в результаты поиска Заголовки уже отправлены – ядро ​​WordPress

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

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

Код для получения меню wihout 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 , но я потерпел неудачу.

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

Solutions Collecting From Web of "Заменить постоянную ссылку / гиперссылку на меню только с именем меню / slug"

Прежде всего –

Я попытался сделать эту работу изменением 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 .