Навигация по страницам

F
На сайте с 03.12.2008
Offline
73
648

Добрый день! Прошу помочь с навигацией по сайту. Есть рубрика (категория №9), в которой какое-то количество постов. Вывожу всё с помощью следующего кода:


<?php get_header(); ?>
<div class="content section-inner">
<?php
$pc = new WP_Query(array('cat' => 9, 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => -1, 'post_status' => 'publish' ) );
?>


<div class="page-title">

<h4><?php printf( __('Page %s of %s', 'hitchcock'), $paged, $wp_query->max_num_pages ); ?></h4>

</div> <!-- /page-title -->

<div class="clear"></div>


<div class="posts" id="posts">

<?php while ($pc->have_posts()) : $pc->the_post(); ?>

<?php get_template_part( 'content', get_post_format() ); ?>

<?php endwhile; ?>

<div class="clear"></div>

</div> <!-- /posts -->

<div class="clear"></div>

<?php wp_reset_query() ?>
<?php hitchcock_archive_navigation(); ?>
</div> <!-- /content -->
<?php get_footer(); ?>

Вот код в function.php отвечающий за навигацию:


// Hitchcock archive navigation function
function hitchcock_archive_navigation() {

global $wp_query;

if ( $wp_query->max_num_pages > 1 ) : ?>

<div class="archive-nav">

<?php
if ( get_previous_posts_link() ) {
previous_posts_link( '<span class="fa fw fa-angle-left"></span>' );
} else {
echo '<span class="fa fw fa-angle-left"></span>';
}
?>
<span class="sep">/</span>
<?php
if ( get_next_posts_link() ) {
next_posts_link( '<span class="fa fw fa-angle-right"></span>' );
} else {
echo '<span class="fa fw fa-angle-right"></span>';
}
?>

<div class="clear"></div>

</div> <!-- /archive-nav-->

Сейчас на страницы выводится список всех постов в рубрике и код

<h4><?php printf( __('Page %s of %s', 'hitchcock'), $paged, $wp_query->max_num_pages ); ?></h4>

пишет что "Страница 0 из 0".

Как сделать, что бы выводилось только часть постов и работала навигация?

http://show63.ru (http://show63.ru) - самара: аренда звука и света, сцена, светодиодного экрана. Аренда стульев, столов в Самаре и в Самарской области.
S
На сайте с 05.07.2013
Offline
53
Sci
#1

Это

'posts_per_page' => -1

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

Где определена переменная $paged? В ней должно храниться значение текущей страницы. Если она нигде не определена, то нужно добавить:

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

И потом добавить в запрос

'paged' => $paged
вот так:
new WP_Query(array('cat' => 9, 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => -1, 'post_status' => 'publish', 'paged' => $paged ) );
F
На сайте с 03.12.2008
Offline
73
#2

Что-то все равно не выходит.

Сейчас код такой:



<div class="content section-inner">

<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
?>
<?php
$pc = new WP_Query(array('cat' => 9, 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => 9, 'post_status' => 'publish', 'paged' => $paged ) );
?>

<div class="page-title">

<h4><?php printf( __('Page %s of %s', 'hitchcock'), $paged, $wp_query->max_num_pages ); ?></h4>

</div> <!-- /page-title -->

<div class="clear"></div>




<div class="posts" id="posts">

<?php while ($pc->have_posts()) : $pc->the_post(); ?>

<?php get_template_part( 'content', get_post_format() ); ?>

<?php endwhile; ?>

<div class="clear"></div>

</div> <!-- /posts -->


<div class="clear"></div>

<?php hitchcock_archive_navigation(); ?>
</div> <!-- /content -->

Выводит первых 9 записей, пишет "страница 1 из 0" и все.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий