Intereting Posts
Конфликт с налогом на пул CPT с пулями типа post Как обрабатывать содержимое в виде виджета? Как ссылаться на определенную часть страницы в wordpress permalinks Добавить пользовательское имя типа сообщения в ссылку term? WordPress не использует файлы шаблонов после обновления Permalink Почему мои пользовательские поисковые запросы перестали работать после изменения URL-адресов / обновления WordPress? Правильный путь к файлу плагина Как добавить опцию для добавления дополнительных флажков в пользовательский тип сообщения Моя тема поддерживает бесконечный свиток, но мой блог WP не прокручивает его – независимо от того, что Может ли Nginx WordPress multisite использовать как субдомен, так и подкаталог в каждом экземпляре? Обратный URL-адрес детской темы Получение заголовков записей Genesis Назад на Post Tiltes Селектор почтового формата в Тематической дочерней теме post class Поисковые запросы не работают? Шаблоны для иерархического пользовательского типа сообщений

URL-адрес фрагмента в элементе навигации без специальной ссылки

Некоторые из страниц в моей навигации – это фрагментированные URL-адреса, которые на самом деле никуда не делись. Другими словами, у меня есть пара родительских элементов навигации, таких как <a href="#">Services</a> которые служат только как элемент навигации, а не фактическая целевая страница.

Я знаю, что могу создать пользовательскую ссылку в меню, чтобы представить это, но если я это сделаю, то URL-адрес любой дочерней страницы под этой страницей не будет создан динамически (например, http://example.com/services/child- страница ). Мне нужно вручную изменить URL-адрес этой дочерней страницы.

Как я могу это сделать, создавая страницы, а не создавая пользовательские ссылки в меню?

Solutions Collecting From Web of "URL-адрес фрагмента в элементе навигации без специальной ссылки"

Вы можете изменить атрибут href для определенных пунктов меню при создании меню.

 function wpd_convert_menu_items_to_hash( $atts, $item, $args ) { if( $somecondition ){ $atts['href'] = '#'; } return $atts; } add_filter( 'nav_menu_link_attributes', 'wpd_convert_menu_items_to_hash', 10, 3 ); 

В этом примере $somecondition – это то, как вы идентифицируете эти пункты меню. $item дает вам доступ к объекту элемента меню, который содержит, среди прочего, идентификатор страницы и пули. Вы также можете посмотреть $atts['href'] , который будет значением URL по умолчанию для этой страницы. $args предоставит вам доступ к аргументам навигационного меню, поэтому вы можете настроить таргетинг всего объекта на определенное меню.

Вы также можете подключить template_redirect и отправлять запросы на эти страницы в другом месте.

 function wpd_check_if_page_should_be_visible(){ if( is_page( 'services' ) ){ wp_redirect( home_url('/services/some-other-page/') ); } } add_action( 'template_redirect', 'wpd_check_if_page_should_be_visible' ); 

Вы можете изменить приведенное выше, чтобы проверить значение в метатете post, так что slug не является жестко запрограммированным. Вы также можете запросить детей и переслать их на дочернюю страницу, так что назначение не должно быть динамическим.