не переводит на след. страницу

Здравствуйте, почему-то у меня на вордпрессе такая проблема:
не работает навигация по сайту. на главной ( в 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 статью переноси 😀

подскажите ещё пожалуйста

у меня есть такой цикл

<?php query_posts($query_string.'&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>')); ?>

последняя строчка отвечает за появление рядом с названиями постов количества комментариев

Как добавить эту функцию в такой код :

<?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;    
?>

Если по-культурному, то посмотрите 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

<?php    /* Start the Loop.     */ ?>     

<ul class="theblog">    
 
<?php 
    
    $ub_blog_layout = get_option('ub_blog_layout');
    if($ub_blog_layout != 'float'):
    
        $ub_gallery_page = get_option('ub_gallery_page');
        if($ub_gallery_page != ''){$minus_gal_cat = ',-'.$ub_gallery_page; $minus_gal_cat_b = '-'.$ub_gallery_page;}
    
        if(is_numeric($_GET['cat'])){
            $args=array(
            'post_type'=>'',
            'paged'=> $_GET['paged'],
            'cat'=> $_GET['cat'] . $minus_gal_cat
            );
        }else{
            $args=array(
            'post_type'=>'',
            'paged'=> $_GET['paged'],
            'cat'=> $minus_gal_cat_b
            );
        }        
        
        $the_query = new WP_Query($args);
        
        $pctr = '1';
            
        while ( $the_query->have_posts() ) : $the_query->the_post(); ?>        
                    <li>
                    
                        <p class="post2-title"><a href="<?php the_permalink(); ?>" class="title"><?php the_title();?></a></p>
                        <p class="post2-info"><?php print the_time(get_option('date_format'));?> | Категория: <?php the_category(', '); ?> | <?php comments_number(); ?></p>
                                                
                        <div class="post2-image">
                        <div class="post-image-holder2"><a href="<?php the_permalink(); ?>" class="image_icon2"><?php the_post_thumbnail(); ?><span class="image_overlay2"></span></a></div>
                        <?php if(!has_post_thumbnail()){print "<a href=\"" . get_permalink() . "\"><img src=\"" . get_bloginfo('template_url') . "/images/post_default_featured_wide.jpg\" /></a>";} ?></div>                    
                        
                        <p class="post2-excerpt"><?php 
                        $myExcerpt = get_the_excerpt();
                        $tags = array("<p>", "</p>");
                        $myExcerpt = str_replace($tags, "", $myExcerpt);

                        echo $myExcerpt;
                        ?>
                        <br /><a href="<?php the_permalink(); ?>" class="button">Далее</a>
                        </p>
                        
                    </li>
                    
                    <?php
                    if($pctr != get_query_var('posts_per_page')){
                    print '<li class="post_sep"></li>';
                    }

        $pctr++;
        endwhile; // End the loop.     
    
    else:
        
        $ub_gallery_page = get_option('ub_gallery_page');
        if($ub_gallery_page != ''){$minus_gal_cat = ',-'.$ub_gallery_page; $minus_gal_cat_b = '-'.$ub_gallery_page;}
        
        if(is_numeric($_GET['cat'])){
            $args=array(
            'post_type'=>'',
            'paged'=> $_GET['paged'],
            'cat'=> $_GET['cat'] . $minus_gal_cat
            );
        }else{
            $args=array(
            'post_type'=>'',
            'paged'=> $_GET['paged'],
            'cat'=> $minus_gal_cat_b
            );
        }        
        
        $the_query = new WP_Query($args);

        
        $pctr = '1';
        
        while ( $the_query->have_posts() ) : $the_query->the_post(); ?>        
                    <li>
                        <p class="post-image">
                            <div class="post-image-holder"><a href="<?php the_permalink(); ?>" class="image_icon"><?php the_post_thumbnail(); ?><span class="image_overlay1"></span></a></div>
                            <?php if(!has_post_thumbnail()){print "<a href=\"" . get_permalink() . "\"><img src=\"" . get_bloginfo('template_url') . "/images/post_default_featured.jpg\" /></a>";} ?>
                        </p>                    
                        
                        <p class="post-title"><a href="<?php the_permalink(); ?>" class="title"><?php the_title();?></a></p>
                        <p class="post-info"><?php print the_time(get_option('date_format'));?> | Категория: <?php the_category(', '); ?> <?php //comments_number(); ?></p>
                        
                        <p class="post-excerpt"><?php 
                        $myExcerpt = get_the_excerpt();
                        $tags = array("<p>", "</p>");
                        $myExcerpt = str_replace($tags, "", $myExcerpt);

                        echo $myExcerpt;                        
                        ?>
                        <br /><a href="<?php the_permalink(); ?>" class="button">Далее</a>
                        </p>
                        
                    </li>
                    
                    <?php
                        
                    if($pctr != get_query_var('posts_per_page')){
                    print '<li class="post_sep"></li>';
                    }

        $pctr++;
        endwhile; // End the loop. 

    endif; ?>
    
</ul>


<?php /* Display navigation to next/previous pages when applicable */ ?>
<?php 
    //set wp_query to make pagination work
    $wp_query->max_num_pages = $the_query->max_num_pages;
    
    if (  $the_query->max_num_pages > 1 ) : ?>
                <div id="page_control">
<?php wp_pagenavi(); ?>
                </div><!-- #nav-below -->

<?php endif; ?>

Неужели никто не посмотрит? Эта проблема сводит на нет все начинание – блог без навигации не блог. Помогите пожалуйста.

Anonymous
Отправить
Ответ на: