Одна база для категории и поста

Вопрос или проблема

Мне нужно следующее:

Единственное сообщение test.com/blog/new-category/post-name/

Категория test.com/blog/new-category/

Я изменил структуру постоянной ссылки на: /blog/%category%/%postname%/ и базу категории на blog. Но это дает мне ошибку 404 на записи.

Я попробовал blog/. в качестве базы категории, и это сработало. Но только для первой страницы. На второй странице у меня возникает ошибка 404 для test.com/blog/new-category/page/2/.

Думаю, WP ищет запись с слагом page/2/.

Кто-либо сталкивался с подобной проблемой и может знать решение?

Спасибо!

  • Измените базу категории на . (точка). Никто не знает, будет ли этот трюк работать в будущем, но нет простого способа удалить /category/ из URL. Поэтому лучше найти плагин в гугле (вот один из них). Плагин Yoast SEO также может сделать то же самое.

  • Установите структуру постоянной ссылки на /blog/%category%/%postname%/.

Затем:

the_posts_pagination();

Эта функция не требует аргументов в вашем случае.

Если вы действительно хотите использовать paginate_links(), используйте правильное значение аргумента format потому что красивые постоянные ссылки уже установлены: page/%#%/, а не ?paged=%#%:

echo paginate_links( array('format' => 'page/%#%/') );

Смотрите функции пагинации для получения дополнительной информации.

Ответ или решение

Для того чтобы достичь желаемой структуры URL для ваших категорий и постов в WordPress, и избежать ошибок 404, вам необходимо выполнить несколько шагов.

  1. Настройка базовой категории:
    Перейдите в настройки вашего WordPress сайта. В разделе "Настройки" -> "Постоянные ссылки" установите структуру постоянных ссылок на:

    /blog/%category%/%postname%/

    Затем, в разделе "Настройки" -> "Категории" измените базу категории на

    .

    Это может быть несколько нестандартным решением, но это позволит избежать конфликта с пагинацией.

  2. Установка плагина для удаления базы категории:
    Для большей безопасности вы можете установить плагин для удаления /category/ из URL. Один из таких плагинов доступен по ссылке. Плагин Yoast SEO также предлагает опцию для удаления базовой категории из URL.

  3. Настройка пагинации:
    Для правильной работы пагинации, используйте функцию the_posts_pagination() для вывода навигации по страницам. Эта функция не требует дополнительных аргументов в вашей ситуации.

    Если вы хотите использовать paginate_links(), убедитесь, что задан правильный формат, так как на вашем сайте уже настроены человеко-читаемые постоянные ссылки. Используйте следующий код:

    echo paginate_links( array('format' => 'page/%#%/') );

    Это обеспечит корректную работу пагинации на страницах, например:

    test.com/blog/new-category/page/2/
  4. Проверка конфликта с записями:
    Если у вас все еще возникают ошибки 404 при переходе на страницы, убедитесь, что слуги категорий и постов не пересекаются. Например, две записи не могут иметь одинаковый слаг, иначе WordPress будет путаться в их идентификации.

  5. Обновление постоянных ссылок:
    После внесения всех изменений, не забудьте обновить постоянные ссылки на странице "Настройки" -> "Постоянные ссылки", даже если вы не меняли структуру. Просто нажмите "Сохранить изменения", чтобы сбросить правила перезаписи.

После выполнения всех вышеуказанных шагов ваша структура адресов для категорий и постов должна работать корректно без ошибок 404. Если проблемы все еще сохраняются, возможно, вам потребуется проверить файл .htaccess на предмет наличие конфликтных правил.

Оцените материал
Добавить комментарий

Капча загружается...