Вопрос или проблема
Происходит странная вещь.
У меня есть страница, к которой я хочу привязать родительскую страницу. Когда я назначаю конкретную родительскую страницу, эта страница выдает ошибку 404.
Вот что странно: это происходит только при попытке назначить одну конкретную родительскую страницу. Любая другая родительская страница работает нормально.
Пример:
www.website.com/city (моя новая страница)
www.website.com/locations (старая страница, которую я хочу сделать родительской)
www.example.com/locations/city (как должен выглядеть URL с родительской страницей, но появляется ошибка 404)
Я могу назначить любую другую страницу в качестве родительской, и ошибка 404 не появляется. Примеры вроде этих работают нормально:
www.example.com/about/city (это работает нормально)
www.example.com/anypage/city (это работает нормально)
и т.д…
Так что ошибка 404 возникает ТОЛЬКО при назначении страницы /locations/ в качестве родительской.
Есть идеи, почему это происходит, и какие-либо предложения по исправлению?
ПЛАГИН 1: После того как я более внимательно изучил этот сайт, я заметил, что у меня есть плагин, который создал раздел в боковой панели под названием “Продукты”. В разделе “Продукты” есть категория с названием “Местоположения”. Это создает часть URL /locations/. Есть несколько страниц, таких как пример www.example/locations/city-state. Это используется для фильтрующего поиска на сайте для просмотра продуктов и местоположений, где находятся некоторые из продуктов.
ПЛАГИН 2: Есть другой плагин, который был установлен для страницы местоположений Google Maps. Это страница www.example.com/locations/, которую я упоминал в своем первоначальном вопросе. Когда вы посещаете эту страницу, вы видите карту с несколькими маркерами местоположений на ней. Вы также можете увидеть конкретное местоположение на карте, используя выпадающий список штатов.
Эти два плагина абсолютно независимы и служат для разных целей (ПЛАГИН 1 предназначен для продуктов и местоположений каждого продукта, а ПЛАГИН 2 только для отображения местоположений магазинов).
Учитывая это, я не думаю, что смогу использовать /locations/ в качестве родительской страницы, даже если это реальная страница. И я не смогу получить URL-адреса местоположений магазинов, как изначально хотел….www.example.com/locations/city, www.example.com/locations/city2, www.example.com/locations/city3.
Надеюсь, это имеет смысл. К сведению….Я взял на себя этот сайт несколько месяцев назад и не был осведомлен о том, как некоторые настройки были осуществлены. Тот, кто настроил страницу карты местоположений /locations/, должен был использовать другой путь, например /our-locations/.
Просто для подтверждения решения: у меня была такая же проблема, и причиной действительно оказалось то, что у меня был пользовательский тип поста с таким же именем, как у родительской страницы/каталога.
Таким образом, в моем случае у меня была www.mydomain.com/policies/
и CPT под названием “Policies”, поэтому любая дочерняя страница в каталоге политик выдавала ошибку 404.
Моим решением было обновить слаг для страницы Policies (в моем случае до www.mydomain.com/anywordhere-policies/
), и это сразу решило проблему.
Ответ или решение
Проблема с 404 ошибкой при назначении родительской страницы
Ситуация, с которой вы столкнулись, достаточно распространена в веб-разработке и может возникать по нескольким причинам. Давайте проанализируем проблему и предложим возможные решения.
Описание проблемы
Вы пытаетесь назначить страницу /locations
родительской для новой страницы /city
, однако после этого возникает ошибка 404. Странным является то, что назначение других страниц в качестве родительских не вызывает проблем.
Возможные причины ошибки 404
-
Конфликт с пользовательскими типами записей (Custom Post Types):
Использование одного и того же имени для родительской страницы и пользовательского типа записи может вызвать сбой в маршрутизации. Например, если у вас уже есть пользовательский тип записи, который называется "Locations", это может помешать правильной маршрутизации для страницы/locations
. -
Функциональность плагинов:
У вас установлены два разных плагина, которые используют/locations
в своих URL. Первый плагин (PLUGIN 1) работает с фильтрами продуктов и локациями, а второй плагин (PLUGIN 2) отображает карты и местоположения. Поскольку оба плагина используют одну и ту же часть URL, это может привести к конфликту. -
Настройки постоянных ссылок:
Периодически ошибки 404 могут возникать из-за неправильной конфигурации постоянных ссылок. Попробуйте обновить настройки постоянных ссылок в админке вашего сайта, чтобы убедиться, что маршрутизация прописана корректно.
Решения
-
Переименование родительской страницы:
Как вы уже заметили, переименование страницы/locations
на что-то более специфичное (например,/our-locations
) может устранить конфликт. Это также позволит избежать путаницы в маршрутизации и сделает ваш URL более уникальным. -
Использование других ярлыков для пользовательских типов записей:
Если вы не хотите менять исходный URL, рассмотрите возможность изменения \"slug\" для пользовательского типа записи, который может конфликтовать. Это может позволить вам продолжать использовать/locations
в качестве родительской страницы, не сталкиваясь с 404 ошибками. -
Проверка и обновление плагинов:
Убедитесь, что установленные плагины обновлены до последних версий, так как иногда разработчики могут исправить подобные проблемы в будущих обновлениях. Кроме того, ознакомьтесь с документацией плагинов для получения рекомендаций по настройке и устранению конфликтов. -
Проверка настроек постоянных ссылок:
Перейдите в Админку WordPress, в раздел «Настройки» → «Постоянные ссылки» и просто нажмите «Сохранить изменения». Это может помочь обновить правила перезаписи и устранить ошибки.
Заключение
Проблемы с 404 ошибками при назначении родительских страниц могут быть довольно сложными, особенно в условиях конфликтов плагинов или пользовательских типов записей. Следуя предложенным решениям и, возможно, проводя дополнительные тесты, вы сможете устранить проблему и успешно назначить страницу /locations
в качестве родительской. Если же ситуация не разрешается, рекомендуется обратиться к профессионалу для более глубокого анализа конфигурации сайта.