Признаки
Посещение/blog/загружает первые 10 сообщений, как ожидалось.
Посещение/blog/page/2/(и вперед) загружает новый URL, но теми же 10 сообщениями. Ничто не изменяется, но URL.
Детали установки
Пользовательская структура постоянной ссылки: /blog/%year%/%monthnum%/%day%/%postname%/
Статическая страница сообщений: "Блог" (краткий заголовок 'блога')
Я использую home.php
к показывает сообщения со следующей разметкой:
<?php
/**
* The archive for blog posts
*/
get_header(); ?>
<div id="main-content">
<div class="container">
<section id="content" class="blog">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'blog-index' ); ?>
<?php endwhile; ?>
</section>
<?php get_sidebar( 'blog' ); ?>
<div class="pagination">
<?php wp_pagenavi(); ?>
</div>
</div>
</div>
<?php get_footer(); ?>
Я проверил на сменные конфликты, и я выполняю относительно минималистическую установку. Я использую WP-PageNavi для генерации разбиения на страницы.
Я также попытался переименовать/blog/страницу к 'blog2' с мыслью, что мог бы быть конфликт постоянной ссылки - тот же результат./blog2/page/2/загружает те же первые 10 сообщений.
Какие-либо идеи, какова могла бы быть причина здесь?
$my_query = new WP_Query( array( 'posts_per_page' => 3, 'paged' => get_query_var('paged') ) );
while ( $my_query->have_posts() ) : $my_query->the_post();
the_title();
// more stuff here
endwhile;
wp_pagenavi( array( 'query' => $my_query ) );
wp_reset_postdata();
попробуйте этот код и также увеличьтесь, размер выставочных сообщений на страницах SETTINGS-> Reading-> Blog показывают самое большее 10 - 50 или 100, надежда, таким образом, это поможет Вам.
Почему Вы используете WP-PageNavi для основанного на числе разбиения на страницы. Предложение WordPress способ выполнить это. BTW здесь является полным запросом для Вас для использования в home.php
<div id="main-content">
<div class="container">
<section id="content" class="blog">
<?php
if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } elseif ( get_query_var('page') ) { $paged = get_query_var('page'); } else { $paged = 1; }
$args = array(
'post_type' => 'post',
'paged' => $paged
);
$my_query = new WP_Query( $args );
if ( $my_query->have_posts() ) :
while ( $my_query->have_posts() ) : $my_query->the_post();
get_template_part( 'content', 'blog-index' );
endwhile;
if ( $my_query->max_num_pages > 1 ) :
$big = 999999999;
echo '<div class="pagination">';
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $my_query->max_num_pages
) );
echo '</div>';
endif;
else :
get_template_part( 'content', 'none' );
endif;
wp_reset_postdata();
?>
</section>
<?php get_sidebar( 'blog' ); ?>
</div>
</div>
Используйте этот код, я столкнулся с той же проблемой затем, я реализовал это
<?php if ( $wp_query->max_num_pages > 1 ) :?>
<div class="pagination">
<?php for ( $i = 1; $i <= $wp_query->max_num_pages; $i ++ ) {
$link = $i == 1 ? remove_query_arg( 'pg' ) : add_query_arg( 'pg', $i );
echo '<a href="' . $link . '"' . ( $i == $paged ? ' class="active"' : '' ) . '>' . $i . '</a>';
} ?>
</div>
<?php endif ?>
Надежда это помогает Вам также.
Используя home.php не походит на хорошую идею, но если это - единственный запрос на странице, Вам, возможно, придется добавить несколько вещей. Следующее обычно работает на нумерацию страниц статической страницы:
Добавьте:
global $paged, $wp_query;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
Но также необходимо добавить еще один аргумент аргументам запроса в шаблонной части для включения разбиения на страницы:
'paged' => $paged
Ваш заключительный код шаблона был бы:
get_header(); ?>
global $paged, $wp_query;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
<div id="main-content">
<div class="container">
<section id="content" class="blog">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'blog-index' ); ?>
<?php endwhile; ?>
</section>
<?php get_sidebar( 'blog' ); ?>
<div class="pagination">
<?php wp_pagenavi(); ?>
</div>
</div>
</div>
Почему не делают Вы вызываете разбиение на страницы путем добавления следующего кода как так:
<div id="main-content">
<div class="container">
<section id="content" class="blog">
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('posts_per_page=3&paged=' . $paged);
?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'blog-index' ); ?>
<?php endwhile; ?>
</section>
<?php get_sidebar( 'blog' ); ?>
<div class="pagination">
<?php wp_pagenavi(); ?>
</div>
</div>
</div>
Проверьте эту ссылку: http://codex.wordpress.org/Function_Reference/query_posts#Pagination
query_posts
, и никогда выполняемые пользовательские запросы ненужный
– Pieter Goosen
05.09.2014, 08:38