Главная
Wordpress
Не работает постраничная навигация, пагинация, ошибка 404 на WordPress
  • 13 Дек 2015г
  • 797
  • 5
  • Рубрика: Wordpress

Не работает постраничная навигация, пагинация, ошибка 404 на WordPress

404 пагинация

Доброго времени суток. 🙂

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

Если использовать стандартные виды, то скорее всего, проблем не возникнет, но если Вам нужно сделать специфический путь, то возможно проявление разного рода "глюков". Один из самых распространенных - это 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');

Если после использования обеих способов, у Вас всеравно осталась проблема, то к проблеме нужно подходить индивидуально. Возможно придется поменять скрипт или плагин пагинации, в зависимости от того что у Вас установлено. Также пробовать сменить тему и смотреть на другие плагины, которые могут влиять на работу пагинации.

На этом все, спасибо за внимание. 🙂




Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)


Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(10 голосов, в среднем: 5 из 5)

Опубликовано 5 комментариев

  • Bomb It 4
    Комментариев: 1

    Я начал очень тщательно просматривать все внутренние ссылки блога, вдруг я где-то сам установил такие ссылки и не заметил. Но как вы уже, наверное, поняли из заголовка поста, я нашел проблему в постраничной навигации моего WP.

  • danashop.ru
    Комментариев: 1

    Я начал очень тщательно просматривать все внутренние ссылки блога, вдруг я где-то сам установил такие ссылки и не заметил. Но как вы уже, наверное, поняли из заголовка поста, я нашел проблему в постраничной навигации моего WP.

  • Вадим
    Комментариев: 2

    Добрый день. А может подскажете ответ на проблему:
    Исключил из показа на главной одну рубрику (query_posts('cat=-4'). Все отображается как нужно. На главной показываются все записи, кроме исключенных. Но при переходе на вторую страницу - отображается все равно первая. Хотя в адресной строке стоит "page/2".
    Убрал вышеуказанную строку - вторая страница стала отображать все как нужно.
    P.S. Навигация сделана при помощи стандартного плагина WP-pagenavi.

  • Фронт
    Комментариев: 1

    Подскажите пожалуйста, что мне делать, если после перехода на вторую страницу в адресе появляется дубликат и ссылка начинает выглядеть так: site.ru/news/page/2/page/2

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

Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Нажмите, чтобы добавить код в комментарий