Intereting Posts
Полностью автоматизированная установка и активация темы через плагин Сколько времени требуется для инициирования автоматических обновлений темы / плагина? Как получить shortcode для работы внутри цикла foreach, вызванного в рамках короткого кода? string translation in functions.php не работает Как перенаправить действие = зарегистрировать ссылку на странице с потерянным паролем на другую ссылку? Отображение сообщений WordPress из почтового и пользовательского типа сообщений в пользовательской таксономии meta_query не позволяет показывать сообщения при запросе нескольких аргументов в WP_Query функция query_posts отключает класс current_page_menu Мне нужно «Выбрать из существующего контента». Возможны ли эксклюзивные таксономические условия? Контекстная помощь в wp-admin для не админов Могу ли я использовать одно и то же nonce для нескольких запросов на одной странице? Как я могу использовать файл в своем плагине в качестве замены для single.php для запроса пользовательского типа? Как сделать регистр Meta Query чувствительным? Отключить перетаскивание панели управления

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 не является жестко запрограммированным. Вы также можете запросить детей и переслать их на дочернюю страницу, так что назначение не должно быть динамическим.