Если использовать стандартные виды, то скорее всего, проблем не возникнет, но если Вам нужно сделать специфический путь, то возможно проявление разного рода "глюков". Один из самых распространенных - это 404 ошибка при переходе на вторую страницу. Второй - при переходе на вторую, третью и тд страницу, вы остаетесь на первой.
Все это возникает часто при использовании такого строения постоянных ссылок:
ваш_сайт.com/название_рубрики/название_записи/
Как видите, нет ничего необычного, кроме одного момента - отсутствует слово category. В стандартном пути, WordPress использует category и путь выглядит так:
ваш_сайт.com/category/название_рубрики/название_записи/
Вот как раз из за удаления category из УРЛа иногда и приводит к проблеме с пагинацией. Чаще всего чтобы удалить category, делают как описано в этой статье - Как убрать category из URL адреса WordPress. В настройках прописывают - /%category%/%postname%/, а в "Префикс рубрик" - ставят точку. После этого, category исчезнет из ссылки, но иногда начинаются проблемы с пагинацией.
Мне помогают 2 способа решить данную проблему с пагинацией.
Способ номер 1. Способ простой и заключается в обычной установке плагина Wp-no-category-base Плагин доступен в базе плагинов https://wordpress.org/plugins/wp-no-category-base/. Перед тем как его устанавливать, нужно удалить точку из "Префикса рубрик", если вы ее ставили, как описывает инструкция из прошлой статьи. Чаще всего, данный способ, является основным и должен решить проблему. Если этого не произойдет, можно попробовать еще один вариант.
Способ номер 2. Если Вы прописали настройки постоянным ссылкам и поставили точку в префикс рубрик. Откройте файл пользовательских функций functions.php и в самый конец добавить такой вот код:
Если в конце functions.php , в самой последней строке, есть закрывающий тег PHP - ?> то вставить нужно перед ним.
//Для работы пагинации function remove_page_from_query_string($query_string) { if ($query_string['name'] == 'page' && isset($query_string['page'])) { unset($query_string['name']); list($delim, $page_index) = split('/', $query_string['page']); $query_string['paged'] = $page_index; } return $query_string; } add_filter('request', 'remove_page_from_query_string'); function fix_category_pagination($qs){ if(isset($qs['category_name']) && isset($qs['paged'])){ $qs['post_type'] = get_post_types($args = array( 'public' => true, '_builtin' => false )); array_push($qs['post_type'],'post'); } return $qs; } add_filter('request', 'fix_category_pagination');
Если после использования обеих способов, у Вас всеравно осталась проблема, то к проблеме нужно подходить индивидуально. Возможно придется поменять скрипт или плагин пагинации, в зависимости от того что у Вас установлено. Также пробовать сменить тему и смотреть на другие плагины, которые могут влиять на работу пагинации.
На этом все, спасибо за внимание. 🙂