Здравствуйте, почему-то у меня на вордпрессе такая проблема:
не работает навигация по сайту. на главной ( в index.php) установлено 5 постов на страницу.
при клике, например, для перехода на страницу, открывается адрес вида: страница/page/2
при этом сам контент страницы НЕ МЕНЯЕТСЯ!
пока эксперементы успехом не увенчались. в чём проблема не знаю. фот на всякий случай index.php:
<?php get_header(); ?>
<?php include(TEMPLATEPATH."/sidebar_l.php");?>
<div id="content"><!--content-->
<div id="mainnews" class="mainnewsbox">
<h1>Главные новости биатлона</h1>
<?php
$posts_new = get_posts('category=1&numberposts=5');
foreach ($posts_new as $post_new) :
echo '<li class="news_item"><a href="';
echo get_permalink($post_new->ID);
echo '">';
echo mysql2date('j.m.Y', $post_new->post_date);
echo ' - ';
echo $post_new->post_title;
echo '</a></li>';
endforeach;
?>
</div>
<marquee scrollamount="3" width="480"><font color="red" size=2>Фотографии с мужского спринта на этапе Кубка мира в Антхольце в разделе "Фотогалереи"</font></marquee>
<?php query_posts('cat=7,8,9,10&posts_per_page=5'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="entry"><!-- Entry -->
<h2 class="post-title">
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
</h2>
<?php the_content();?>
<div id="postmeta" class="postmetabox">
<?php the_tags('Теги: ',' • ','<br />'); ?>
<?php the_time('j M, Y G:i') ?>
<?php wp_link_pages(); ?>
<?php comments_popup_link(__('<strong>Комментариев (0)</strong>'), __('<strong>Комментариев (1)</strong>'), __('<strong>комментариев(%)</strong>')); ?>
</div>
</div><!--/entry-->
<?php endwhile; else: ?>
<div class="entry"><h2><?php _e('Ничего не найдено((.'); ?></h2></div>
<?php endif; ?>
<?php wp_pagenavi(); ?>
</div><!--/content-->
<?php include(TEMPLATEPATH."/sidebar_r.php");?>
<?php get_footer(); ?>
</div><!--/Container-->
</body>
</html>
навигация реализована Pagenavi (<?php wp_pagenavi(); ?>), но со стандартной навигацией та же история….

Проблема в строке
<?php query_posts(‘cat=7,8,9,10&posts_per_page=5′); ?>
должно быть
<?php query_posts($query_string.’&cat=7,8,9,10&posts_per_page=5’); ?>
урра! помогло, спасибо Ю.Б откуда вы всё так хорошо знаете?!))) кстати что меняет эта функция?
Достигается упражнениями (с) 🙂
В процессе инициализации движок делает выборку постов, подлежащих выводу на странице (в смысле по урлу, т.к. у слова страница есть еще ряд значений). Что именно выбирать, определяют параметры запроса, те, что после "index.php?" (кстати, в енверонменте они зовутся QUERY_STRING). Если используется ЧПУ, то урл анализируется и разбирается на те же самые параметры. Фактически это и есть $query_string. Когда в шаблоне выполняется query_posts, происходит другая выборка, заменяющая первую. Параметры новой выборки указываются в параметрах вызова query_posts. В частности, мы можем изменить рубрики для вывода (cat), количество записей (posts_per_page), порядок и т.д. Так вот, в конкретном случае с Вашим кодом в выборке не учитывались те параметры, которые были получены при инициализации, в частности, терялась инфа о номере страницы (тут слово страница уже в другом смысле). Когда мы добавили переменную $query_string,которую "собрал" иницализатор на основе урла, то фактически восстановили первоначальные параметры, часть из которых – рубрики и количество – мы тут же заменили на свои. В результате у нас не потерялась информация о номере страницы, но выборка была сделана с новыми параметрами.
Хоть в FAQ статью переноси 😀
подскажите ещё пожалуйста
у меня есть такой цикл
последняя строчка отвечает за появление рядом с названиями постов количества комментариев
Как добавить эту функцию в такой код :
Если по-культурному, то посмотрите Template Tags/get posts « WordPress Codex
и обратите внимание на наличие в циклах вызова setup_postdata().
А если по рабоче-крестьянски, то можно попробовать так:
$id = $post_new->ID;
comments_popup_link(…….
(если код внутри какой-то функции, скажем, в сайдбаре, то понадобится еще и "global $id;")
сейчас попробую рабоче-крестьянский для начала прилепить.( вообще код идёт на index.php, в другом цикле на этой же странице идут другие посты,а в сайдбаре идут ещё дригие посты: весь index.php я привёл выше)
только вот не уверен, куда и как его вставлять. так?
<?php
$posts_new = get_posts(‘category=1&numberposts=5’);
foreach ($posts_new as $post_new) :
echo ‘<li class="news_item"><a href="’;
echo get_permalink($post_new->ID);
$id = $post_new->ID;
comments_popup_link(__(‘<strong>Комментариев (0)</strong>’), __(‘<strong>Комментариев (1)</strong>’), __(‘<strong>комментариев(%)</strong>’));
echo ‘">’;
echo mysql2date(‘j.m.Y’, $post_new->post_date);
echo ‘ – ‘;
echo $post_new->post_title;
echo ‘</a></li>’;
endforeach;
?>
да, так))
Прошу помощи. У меня таже проблема что и у автора поста – не работает постраничная навигация. В дефолтном шаблоне все работает нормально. Посмотрите пожалуйста код, может кто нибудь увидит ошибку. Я в php совсем ноль…
loop-blog.php
Неужели никто не посмотрит? Эта проблема сводит на нет все начинание – блог без навигации не блог. Помогите пожалуйста.