Dagon sitemap generator и проблемы с ЧПУ

Есть у dagon sitemap generator один такой маленький баг — он при включенных ЧПУ не всегда правильно определяет номер страницы, выводит всегда только первую страницу.  Почему так происходит, я точно не определил, функция get_query_var видимо некорректно срабатывает.

Вылечить можно, добавив несколько строчек в файл плуга sitemap-generator.php

После строк

	$current_page = 1;
	if (get_query_var("pg")) {
		$current_page = get_query_var("pg");
	}

Добавляем:

	$url = $_SERVER['REQUEST_URI'];
        preg_match("([0-9]+)", $url, $out);
        if(($out[0] != $current_page) AND ($out[0] > 1)){ $current_page = $out[0]; }

Это примерно 1074 строка.

Вкратце, что делает код. Он проверяет номер страницы, который определяет сам плагин, с номером страницы в урле. Если они не совпадают, то берет номер страницы из урла. Проверялось на чпу вида /sitemap/4

UPD. Подправил немного, чтобы для нулевой страницы не переопределял номер.

5.00 avg. rating (90% score) - 1 vote

14 комментариев

  • Саша, а зачем вам 2 карты сайта? Одна генерируется дагоном, а другая карта для какой цели? Чтобы лучше индексировался сайт?
    Кстати, это какой плагин генерирует такую карту сайта — http://alexvolkov.ru/karta-saita-2 ???

    • Вторую сам написал, пост на блоге есть про то, как такую же сделать.

  • Долго искал решение этой проблемы, жаль что не сразу нашел ваш блог…

  • Я всегда ставлю, чтобы не было страниц.. пусть будет 500 ссылок на одной странице..
    спасибо.. может быть, я когда-нибудь передумаю и тогда мне Ваш пост очень поможет..

  • Спасибо за совет но у меня не было проблем с этим плагином Пока

  • Не замечал на своих сайтах потому что не проверял — надо проверить…

  • Лично у меня совсем другой баг вылез — при активации плагина он мне подменял главную страницу — на ней появлялась ошибочка 404. Во как! С перепугу удалила. Что не так делала?

  • когда-то пытался на своем блоге сделать ЧПУ — не получилось. больше за это дело не брался хоть и понимаю, что это очень полезно для блога (да и любого другого сайта)

  • Читал на форуме maxsite что плагин этот шибко базу грузит. А вообще самый простой вариант карты  — создание отдельного шаблона страницы для карты с кодом <?php get_archives(‘postbypost’, 1000); ?>

  • Надо учить Ruby и использовать Ruby on Rails. Тут от природы нормальные ЧПУ по сути по своей. PHP — в топку!

    • Всмысле, нормальные ЧПУ?

  • Спасибо, встречал такую же ошибку, тогда просто отключил ЧПУ. Вообще сейчас хочу отказаться от таких карт сайта, ибо для юзера это неудобно (если больше 1 к страниц), только для сапы, чтоб все УВ 3 были

  • О да!Наконец то избавился от этого зловещего «Page not found»!
    Спасибо тебе, Alex!

  • Спасибо большое за пост!
    Я с этой проблемой конечно не сталкивался, но у друга она возникла, вот и попросил помочь найти ответ на эту проблему. 
    Добавил ваш блог в закладки!

css.php