Поддержка Проблемы и решения Перестала работать функция posts_nav_link()

  • Обратили внимание сегодня, уже после обновления до версии 4.0. Возможно проблема была и ранее. В основном шаблоне index.php есть блок вывода новостей сайта. Выглядит это примерно так:

    <?
    if ( is_home() ) {
    	echo "<h1>".$t1."</h1>";
    	$query = new WP_Query( array( 'category_name' => 'news' ) );
    	if ( $query->have_posts() ) {
    		while ( $query->have_posts() ) {
    			$query->the_post();
    			echo "<p class=\"data\">"; echo the_time($df); echo "</p>";
    			echo "<h2><a href=\""; echo the_permalink(); echo "\">"; echo the_title(); echo "</a></h2>";
    			echo "<p>"; echo the_excerpt(); echo "</p>";
    			echo "<p class=\"podrobno\"><a href=\""; echo the_permalink(); echo "\">"; echo $p1; echo " >>&gt</a></p>";
    		}
    		echo "<p class=\"navbar\">"; echo posts_nav_link('&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;', $np, $pp);  echo "</p>";
    	} else { echo "<p>Не найдено.</h2>"; }
    }
    ?>

    Переменные, указанные при вызове тех или иных функций, заданы несколько выше.

    На главной странице показан список записей из рубрики «Новости». Их число и сортировка указаны в настройках самого вордпресса. При нажатии на ссылку «Предыдущая страница» адрес с http://сайт/news меняется на http://сайт/news/page/2
    Но новости выводятся всё те же, что и до того. Как это исправить?

Просмотр 10 ответов — с 16 по 25 (всего 25)
  • 🙂

    Я сейчас в приведённом выше куске про новости, сразу после вывода навигации на предыдущую и следующую страницы вставил строчку:

    if ( is_category(8) ) { echo "12"; }

    Так вот, ничего на сайте не напечаталось. Так что условие is_home() отработало, а is_category(8) — нет.

    категория точно с id 8?
    в настройках блога что указано для вывода на главной странице?
    отключите SEO плагины, которые у вас category вырезают — проверьте.

    Всё ещё веселее. Плагинов, которые вырезали бы /category, нет совсем — это раз.
    В меню пункт добавлен судя по всему не как Рубрика, а как Произвольная ссылка. Стоит добавить его именно как Рубрику — всё начинает работать корректно — это два. Очевидно нужно переделать меню, во-первых, и поставить плагин, который бы вырезал слово category, во-вторых.

    Большое Вам спасибо за терпение и помощь.

    С другой стороны, как только я убираю слово category из ссылки, всё возвращается на круги своя. Вордпресс перестает считать, что я в категории, какой бы то ни было.

    UPD.
    Кажется нашёл причину. Я не создавал отдельного шаблона для вывода категорий, но и шаблона для вывода архивов в теме тоже нет. Как непросто бывает разбираться в чём-то, перешедшем к тебе по наследству от других товарищей. Создам шаблон для архивов, и посмотрю, что это мне даст.

    а как вы убираете category из ссылок? правильный путь это плагин WP No Category Base, а не удаление слова category в настройках постоянных ссылок.

    а меню поправить дело 5 минут, думаю сами легко справитесь.

    Я не создавал отдельного шаблона для вывода категорий, но и шаблона для вывода архивов в теме тоже нет.

    вам это не поможет — если нет category.php или там archive.php — то все равно берется используемый вами index.php

    В постоянных ссылках выбран такой шаблон:
    /%category%/%postname%.shtml

    Когда я говорил, что убираю слово category, то имел в виду адресную строку браузера.
    Пишу так: http://apkm.info/category/news/ — всё работает,
    пишу иначе: http://apkm.info/news/ — и меня снова перебрасывает на показ одной записи.

    оно и не должно работать с удаленным из урла category — чтобы это работало надо плагин установить.

    и правильно вас на запись перекидывает — вы убираете указание для движка на то, что это рубрика — вот он и открывает первую запись, в которой находит слово news.

    просто вам не повезло, что у вас записи с такими ярлыками — иначе бы вы давно заметили, в чем косяк.

    А вот это уже очень любопытно, на домашней своей страничке я никаких плагинов не устанавливал, однако все работает корректно. Правда и тема там не самописная, может быть в функциях темы что-то зашито, декодировать зашифрованный файл было немножечко лень. Значит Снова приходим к установке плагина. Сейчас и займусь. 🙂

    UPD.
    Заработало. С меня — пиво! ))

    ну и слава богу 🙂

Просмотр 10 ответов — с 16 по 25 (всего 25)
  • Тема «Перестала работать функция posts_nav_link()» закрыта для новых ответов.