Как я могу устранить URL-адрес верхнего уровня в WordPress, сохраняя при этом возможность доступа к дочерним страницам, ⇐ Php
Как я могу устранить URL-адрес верхнего уровня в WordPress, сохраняя при этом возможность доступа к дочерним страницам,
Это ограничение, присущее WordPress? Например, если у нас есть структура URL с тремя уровнями иерархии, нельзя ли удалить первый уровень? В настоящее время я должен поддерживать структуру постоянных ссылок как «/%postname%/», если это необходимо. В частности, у меня есть родительская страница под названием «название турнира» с детьми и внуками. При попытке получить доступ к URL-адресу дочерней страницы без включения фрагмента родительского URL-адреса, но с включением фрагмента родительского URL-адреса, происходит автоматическое перенаправление, включающее фрагмент URL-адреса-прародителя.
Например: мне нужно получить доступ к существующей странице http://local.test.com/tournament-name/t ... e/players/, используя URL-адрес http://local.test.com/team-name/. players/ - то есть без ключевого слова URL-адреса «название турнира».
Это изменение предназначено для поисковой оптимизации.
Я могу удалить название турнира и перенаправить его на http://local.test.com/team-name/players/. Но WordPress автоматически перенаправляет его обратно на http://local.test.com/tournament-name/t ... e/players/, что приводит к бесконечному циклу. Также мне нужно убедиться, что страница http://local.test.com/tournament-name/t ... e/players/ отображает тот же контент, что и http://local.test.com/tournament-name/team-name. /игроки/
Код, который я пробовал, приведен ниже
function custom_remove_parent_page_slug() { // Список родительских страниц, для которых вы хотите удалить слаг $parent_pages = массив( 'название турнира' ); глобальный $wp; $requested_url = home_url($wp->request); foreach ($parent_pages как $parent_page) { $parent_page_url = home_url($parent_page); // Проверяем, начинается ли запрошенный URL-адрес с URL-адреса родительской страницы if ( strpos($requested_url, $parent_page_url) === 0) { // Удаляем фрагмент родительской страницы из URL $child_page_url = str_replace($parent_page_url, home_url(), $requested_url); // Проверяем, отличается ли URL дочерней страницы от запрошенного URL если ($child_page_url!== $requested_url) { // Перенаправление с кодом состояния 301 wp_redirect($child_page_url, 301); Выход; } } } } add_action('parse_request', 'custom_remove_parent_page_slug'); Пожалуйста, помогите мне. Заранее спасибо.
Это ограничение, присущее WordPress? Например, если у нас есть структура URL с тремя уровнями иерархии, нельзя ли удалить первый уровень? В настоящее время я должен поддерживать структуру постоянных ссылок как «/%postname%/», если это необходимо. В частности, у меня есть родительская страница под названием «название турнира» с детьми и внуками. При попытке получить доступ к URL-адресу дочерней страницы без включения фрагмента родительского URL-адреса, но с включением фрагмента родительского URL-адреса, происходит автоматическое перенаправление, включающее фрагмент URL-адреса-прародителя.
Например: мне нужно получить доступ к существующей странице http://local.test.com/tournament-name/t ... e/players/, используя URL-адрес http://local.test.com/team-name/. players/ - то есть без ключевого слова URL-адреса «название турнира».
Это изменение предназначено для поисковой оптимизации.
Я могу удалить название турнира и перенаправить его на http://local.test.com/team-name/players/. Но WordPress автоматически перенаправляет его обратно на http://local.test.com/tournament-name/t ... e/players/, что приводит к бесконечному циклу. Также мне нужно убедиться, что страница http://local.test.com/tournament-name/t ... e/players/ отображает тот же контент, что и http://local.test.com/tournament-name/team-name. /игроки/
Код, который я пробовал, приведен ниже
function custom_remove_parent_page_slug() { // Список родительских страниц, для которых вы хотите удалить слаг $parent_pages = массив( 'название турнира' ); глобальный $wp; $requested_url = home_url($wp->request); foreach ($parent_pages как $parent_page) { $parent_page_url = home_url($parent_page); // Проверяем, начинается ли запрошенный URL-адрес с URL-адреса родительской страницы if ( strpos($requested_url, $parent_page_url) === 0) { // Удаляем фрагмент родительской страницы из URL $child_page_url = str_replace($parent_page_url, home_url(), $requested_url); // Проверяем, отличается ли URL дочерней страницы от запрошенного URL если ($child_page_url!== $requested_url) { // Перенаправление с кодом состояния 301 wp_redirect($child_page_url, 301); Выход; } } } } add_action('parse_request', 'custom_remove_parent_page_slug'); Пожалуйста, помогите мне. Заранее спасибо.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение