Как изменить url записей и рубрик?

Ссылка скопирована
1 ответ

Задача привести ссылки записей и рубрик к виду:
/news/имя-рубрики/
/news/имя-записи/

Изменил настройки постоянных ссылок: /news/%postname%/

Работает почти как надо, но к ссылкам рубрик добавляется category, т.е. /news/category/имя-рубрики/
Пробовал разные плагины для удаления category, вместе с ним удаляется и news

Дополнительные вопросы

Этот пробовали ? https://wordpress.org/plugins/remove-cpt-base/

  • Роман Страх, да, он вообще удаляет слаг только кастомных типов записей
  • Что значит "страница записей"? Страницы и записи - разные сущности.
    И выбрось эту идею из головы - избавляться от базовых слагов.
  • Refguser, "страница записей" - это страница на которой выводятся Записи. Но на самом деле эта информация вообще не нужна, отредактировал вопрос.

    По поводу "выбрось эту идею из головы". Не я придумал, стоит такая задача. Но за статью спасибо, может получится переубедить.

  • А если у вас будет категория со слагом article и запись со слагом article, как WordPress должен понять какой тип контента открывать?
  • Ответы на вопрос 0

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Web-разработка Ответ

    Настройка /news/%postname%/ меняет структуру URL записей, но не меняет base рубрик. Рубрики WordPress по умолчанию имеют свой category base, поэтому получается /news/category/rubrika/. Чтобы получить /news/rubrika/, нужно отдельно изменить базу рубрик.

    Самый простой способ без кода: «Настройки → Постоянные ссылки» и в поле «Префикс для рубрик» указать:

    news

    news

    Тогда рубрики будут вида:

    /news/имя-рубрики/

    /news/имя-рубрики/

    Но есть важный конфликт: если записи тоже имеют вид /news/%postname%/, WordPress должен отличать запись от рубрики внутри одного уровня. Если slug записи совпадёт со slug рубрики, будет конфликт. В больших сайтах это может стать проблемой.

    Более безопасная структура:

    Записи: /news/post-name/
    Рубрики: /news/category-name/

    Записи: /news/post-name/ Рубрики: /news/category-name/

    Она красивая, но требует дисциплины по slug. Если хотите полностью избежать конфликтов, лучше оставить разные базы:

    Записи: /news/post-name/
    Рубрики: /news/category/category-name/

    Записи: /news/post-name/ Рубрики: /news/category/category-name/

    Или:

    Записи: /blog/post-name/
    Рубрики: /news/category-name/

    Записи: /blog/post-name/ Рубрики: /news/category-name/

    Если всё же убираете category, обязательно проверьте: архивы рубрик, одиночные записи, пагинацию рубрик, sitemap и canonical. После изменения структуры сделайте 301-редиректы со старых URL на новые.

    Итог: для рубрик меняется отдельный «Префикс для рубрик». Но одинаковый base /news/ для записей и рубрик может давать конфликты, поэтому используйте аккуратно.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно