Поддержка Проблемы и решения Взаимосвязь пагинации и урлов

  • Ни как не могу понять почему так?
    Есть в стандартной записи запись, которая закреплена в подрубрике <b>/test/</b> рубрики /novaya/.
    По факту запись имеет следующий урл:
    http://localhost:8089/novaya/test/testovaya-zapis-%e2%84%96-3-v-podrubriku-test-rubriki-novaya/
    Хлебные крошки выглядят так:
    Главная » новая » test » Тестовая запись № 3 в подрубрику ТЕСТ рубрики НОВАЯ

    1. Если мы наводим на ссылку » test », то видим:
    http://localhost:8089/category/novaya/test/
    Если переходим по этой ссылке, то мы попадаем на вывод всех записей относящихся к подрубрике /test/ рубрики /novaya/, за которую отвечает файл со стандартным кодом category.php. При этом урл выглядит: http://localhost:8089/category/novaya/test/
    2. Если мы наводим на ссылку » новая », то видим:
    http://localhost:8089/category/novaya/
    Если переходим по этой ссылке, то мы попадаем на вывод всех записей относящихся ко всем подрубрикам рубрики /novaya/, за которую отвечает файл со стандартным кодом category.php. При этом урл выглядит: http://localhost:8089/category/novaya/
    Вопрос:
    1. Почему такая разница в урле?
    2. Так и должно быть или нет?
    3. Почему, если в урле http://localhost:8089/novaya/test/testovaya-zapis-%e2%84%96-3-v-podrubriku-test-rubriki-novaya/ убрать testovaya-zapis-%e2%84%96-3-v-podrubriku-test-rubriki-novaya/, чтобы урл стал http://localhost:8089/novaya/, то при переходе по данному урлу (http://localhost:8089/novaya/) вы попадаете на страницу с выводом всех записей относящихся ко всем подрубрикам рубрики /novaya/, за которую отвечает файл со стандартным кодом category.php. При этом урл выглядит: http://localhost:8089/novaya/. Но при этом не работает пагинация должным образом, т.е. при переходе на следующую страницу выдаёт 404. А если урл у нас http://localhost:8089/category/novaya/, то пагинация работает должным образом, т.е. при переходе на следующую страницу выводит остальные ссылки на записи относящиеся ко всем подрубрикам рубрики /novaya/.
    4. Почему такое происходит с пагинацией и урлами?
    5. Возможно ли как то исправить такое (см. п. 3+4)?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • за которую отвечает файл со стандартным кодом category.php

    Шаблон отвечает только за вывод, выборку делает движок, основываясь на разборе (парсинге) url. Если, конечно, чьи-то шаловливые ручки не переопределили выборку внутри шаблона.

    1. Почему такая разница в урле?

    Между кем и чем? У рубрик одна схема (/category/слаг_рубрики/слаг_подрубрики), а у записей другая, задаваемая в настройках ЧПУ. К слову, база рубрик category тоже может быть изменена настройками.

    2. Так и должно быть или нет?

    Вроде да.

    Почему, если в урле убрать…

    Потому что у WP есть такая древняя багофича, позволяющая из схемы url рубрик убрать базу (/category/). Но делать это надо специальным образом (есть плагины), потому что простое убирание из ссылки части пути чревато последствиями. Ну, Вы это и сами уже заметили.

    5. Возможно ли как то исправить такое (см. п. 3+4)?

    Есть плагины, убирающие category из урла рубрики. Лично я бы посоветовал оставить category в покое либо заменить на другое слово, более адекватное контенту (в настройках). Потому что в истории WP уже был момент, когда после обновления движка куча плагинов, модифицирующих урл рубрики, перестала работать. Ибо, как я уже сказал, они эксплуатируют багофичу. А это риск, как и любой другой трюк.

    Благодарю Юрий (@yube) за столь нужный мне ответ.
    Вы подтвердили мои предположения, а на просторах нета наиболее полного и развёрнутого ответа не видел.
    Из этого делаю вывод, что все ссылки должны иметь вид (при стандартных записях) https://lbolimp.ru/category/novosti/
    К стати, давно хотел спросить (тоже в данную тему вопроса), а ссылки типа: https://ru.wordpress.org/plugins/
    https://ru.wordpress.org/themes/
    https://ru.wordpress.org/news/
    Каким образом реализованы, страницы, таксономии, плагины для скрытия /category/? Просто в них я тоже не вижу, чтобы где-то было /category/.

    • Ответ изменён 1 год, 11 месяцев назад пользователем legal2019.

    Просто в них я тоже не вижу, чтобы где-то было /category/.

    Если посмотрите код страницы https://ru.wordpress.org/plugins/, то увидите

    <body id="wordpress-org" class="home ...
    

    home — это класс для главной сайта. Улавливаете? 😉

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Тема «Взаимосвязь пагинации и урлов» закрыта для новых ответов.