• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Проблемы с пагинацией

ZHMEN

Постоялец
Регистрация
6 Фев 2013
Сообщения
73
Реакции
22
Доброго времени суток!
Не могу побороть проблему с пагинацией.
Использую плагин WP-Pagenavi. Шаблон кастомный. В файле page.php вывел в нужное место сам плагин. Показывает количество страниц с постами, но выводит на каждой из страниц только первые 8 материалов, как указано в переменной 'numberposts' => 8. И все они одинаковые.
Вот код самого файла page.php. Явно что-то неправильно, но что, понять не могу.
Помогите, пожалуйста, разобраться.

Заранее премного благодарен!
PHP:
<?php
/**
* The template for displaying all pages.
*
* This is the template that displays all pages by default.
* Please note that this is the WordPress construct of pages
* and that other 'pages' on your WrdPress site will use a
* different template.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
    require('constants.php');

    if (ICL_LANGUAGE_CODE == 'uk') {
        $public_cat = 346;
        $manufact_cat = 342;
        $dapart_cat = 339;
        $cat_pub = 26;
        $cat_man = 25;
        $cat_dep = 24;
        $cats = "346,342,339";
        $title = "Технічна інформація та ціни на обладнання";
    } elseif (ICL_LANGUAGE_CODE == 'en') {
        $public_cat = 355;
        $manufact_cat = 352;
        $dapart_cat = 349;
        $cat_pub = 30;
        $cat_man = 29;
        $cat_dep = 28;
        $cats = "355,352,349";
        $title = "Technical information and prices on accessories";
    } else {
        $public_cat = 129;
        $manufact_cat = 125;
        $dapart_cat = 122;
        $cat_pub = 13;
        $cat_man = 12;
        $cat_dep = 11;
        $cats = "129,125,122";
        $title = "Техническая информация и цены на оборудование";
    }

    get_header ();
?>
<div id="middle">

<!-- BEGIN:    Left Sidebar -->
<div id="left_sidebar">
    <?php get_sidebar ('left'); ?>
</div>
<!-- END:    Left Sidebar -->

<?php
        // if there is post for the page, then show it first
    if (has_post_thumbnail ($post->ID)) {
        echo get_the_post_thumbnail ($post->ID, 'full');
    }
?>

<!-- <?php echo get_post_meta ($post->ID, 'with_right_sidebar');?> -->

<?php
    $man_bar_class = '';
    if (0 == strcmp ('true', get_post_meta ($post->ID, 'with_right_sidebar', true))) {
?>
<!-- BEGIN:    Right Sidebar -->
    <div id="right_sidebar">
        <?php get_sidebar ('right'); ?>
    </div>
<!-- END:    Right Sidebar -->
<?php

    } else {
        $man_bar_class = 'class="no_right_sidebar"';
    }
?>

<!-- BEGIN: Main Bar Page -->
<div id="main_bar_page" <?php echo $man_bar_class;?>>
<?php
    if (have_posts ()) {
        while (have_posts ()) : the_post ();
               
?>
        <div class="characteristic_detail">
            <div class="entry-content">
                <?php the_content (); ?>
            </div>
            <!-- .entry-content -->
        </div><!-- #post-## -->
<?php

               endwhile;
    }

//echo $post->post_name;
    // News and presentation page
    $isNews = 0 == strcmp ($post->post_name, SLUG_NEWS);

    $isPresentations = 0 == strcmp ($post->post_name, SLUG_PRESENTATIONS);
    if ($isNews || $isPresentations) {

?>
    <div class="news-presentation">
<?php
          if ($isNews) {
        $pageCategory = CATEGORY__NEWS;
                setPostViews(get_the_ID());
    } else {
        $pageCategory = CATEGORY__PRESENTATIONS;
    }
        $posts = get_posts (array ('numberposts'     => 8,'category_name' => $pageCategory)); //Тут get_posts (array ( передаются параметры numberposts - кол-во постов     
        foreach ($posts as $post) {
            setup_postdata ($post);

  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

query_posts(array('numberposts', 'posts_per_page' => 8, 'paged' => $paged));
?>


            <h3><a
                    href="<?php the_permalink ()?>"
                    title="<?php the_title () ?>"
                    ><?php the_title () ?></a></h3>
                                        <span><?php the_date ();    ?></span>
                                        <span><?php echo getPostViews(get_the_ID());?></span>
            <p><?php
                           //    global $more;
                             //  $more = 0;
                             //  the_content('[...]');
                                the_excerpt();
                               
                                 ?>
</p>
            <hr class="news-presentation"/>
<?php
        }
?>

    </div>
<p>&nbsp;</p>
<div class="more_entries">
<?php if (function_exists('wp_pagenavi')) wp_pagenavi(); else { ?><?php } ?></div>
</div>
<p>&nbsp;</p>
<?php
    }
?>
<?php
//if ($post->post_name=='novini')
//echo file_get_contents('http://www1.techprilad.com/category/right-side-bar-uk/news-uk/');

?>
<?php
//        setPostViews(get_the_ID());
?>

</div>
<!-- END: Main Bar Page -->
</div>
<?php get_footer (); ?>
 
у тебя сначала
Код:
$posts = get_posts (array ('numberposts'     => 8,'category_name' => $pageCategory));
а затем чуть ниже, уже внутри цикла
Код:
query_posts(array('numberposts', 'posts_per_page' => 8, 'paged' => $paged));
т.е. в каждой итерации цикла у тебя делается новая выборка постов, и выводится, соответственно, первый пост из выборки. так что вторую строчку с вызовом постов следует убрать, а переменную paged подставить как раз в первый вызов.
 
у тебя сначала
Код:
$posts = get_posts (array ('numberposts'     => 8,'category_name' => $pageCategory));
а затем чуть ниже, уже внутри цикла
Код:
query_posts(array('numberposts', 'posts_per_page' => 8, 'paged' => $paged));
т.е. в каждой итерации цикла у тебя делается новая выборка постов, и выводится, соответственно, первый пост из выборки. так что вторую строчку с вызовом постов следует убрать, а переменную paged подставить как раз в первый вызов.

Если убрать вторую строку, то перестает работать. Т.е. выводится только одна страница. Но вроде получилось сделать таким образом:

PHP:
$posts = get_posts (array ('numberposts'     => 8,'category_name' => $pageCategory, 'paged' => $paged)); //Тут get_posts (array ( передаются параметры numberposts - кол-во постов     
        foreach ($posts as $post) {
            setup_postdata ($post);
query_posts(array('numberposts', 'posts_per_page' => 8, 'paged' => $paged));
В общем работает )
Огромное спасибо за наводку с $paged!
 
Назад
Сверху