分页不使用query_posts

时间:2018-05-04 07:42:07

标签: wordpress pagination

我尝试在我的WordPress网站上添加分页,它在博客页面上运行良好,但在点击分页URL更改的任何链接时使用自定义类别,但内容仍然相同。

自定义类别代码

        <?php query_posts('category_name=sport');

        if (have_posts()) : while (have_posts()) : the_post(); ?>
            <?php get_template_part('loop'); ?>
        <?php endwhile; // конец цикла
        else: echo '<p>Blank.</p>'; endif; ?>   

       <?php pagination(); ?>

在function.php中填充

function pagination() {
global $wp_query;
$big = 999999999;
$links = paginate_links(array(
    'base' => str_replace($big,'%#%',esc_url(get_pagenum_link($big))), 
    'format' => '?paged=%#%',
    'current' => max(1, get_query_var('paged')),
    'type' => 'array', 
    'prev_text'    => 'Назад',
    'next_text'    => 'Вперед',
    'total' => $wp_query->max_num_pages,
    'show_all'     => false, 
    'end_size'     => 4, 
    'mid_size'     => 4,
    'add_args'     => false,
    'add_fragment' => '',
    'before_page_number' => '',
    'after_page_number' => ''
));
if( is_array( $links ) ) {
    echo '<ul class="pagination">';
    foreach ( $links as $link ) {
        if ( strpos( $link, 'current' ) !== false ) echo "<li class='active'>$link</li>"; 
        else echo "<li>$link</li>"; 
    }
    echo '</ul>';
 }

}

请帮忙

3 个答案:

答案 0 :(得分:1)

代替:query_posts('category_name=sport');

试试这个:

$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'category_name' => 'sport',
    'posts_per_page' => 6,
    'paged' => $page
);

query_posts($args);

要进一步自定义,请查看List of Query Vars

答案 1 :(得分:0)

试试这个:

<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
  'posts_per_page' => 3,
  'paged'          => $paged,
  'category_name' => 'sport'
);

$the_query = new WP_Query( $args ); 
?>

希望这会有所帮助:)

答案 2 :(得分:0)

请检查以下代码:

$page = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $args = array(
                'post_type' => 'work',
                'categories'=>'sports',
                'posts_per_page' => 2,
                'paged' => $page,
            );
            query_posts($args);

   if (have_posts()) : while (have_posts()) : the_post(); ?>
      <h3><?php the_title(); ?></h3>
      <?php the_content(); ?>
      <?php endwhile; 
      else: echo '<p>Blank.</p>'; endif; ?> 
     <?php pagination(); ?>

您必须按照示例

提及post type

希望这对你有用。