Wordpress query_posts分页问题

时间:2013-04-29 19:26:31

标签: wordpress pagination

先谢谢你们提出的任何见解我一直在为此而烦恼。

这是我用来调用主页帖子的代码:(www.csmpromo.com)

<div id="home-posts">

    <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    query_posts(array( 'cat' => 'home', 'types' => $types, 'posts_per_page' => 19, 'paged' => $paged, ) ); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    <div class="home-post"><a href="<?php the_permalink(); ?>" class="transition">
            <div class="home-image">
                <?php if ( has_post_thumbnail() ) { the_post_thumbnail('home-thumb', array('class' => 'home-image')); } else { ?>
                <img src="<?php bloginfo('template_directory'); ?>/img/fallback.jpg" alt="<?php the_title(); ?>" class="home-image" />
                <?php } ?>
            </div>
            <?php the_titlesmall('', '<i class="icon-right-open-mini"></i>', true, '80') ?></a>
                <div class="home-post-meta">
                    <i class="icon-user" style="font-size:7px; color:#9B362F"></i> <?php the_author_link(array('class' => 'home-author')); ?></span> 
                    <i class="icon-feather" style="font-size:7px; color:#9B362F"></i> <?php the_time('F j, Y'); ?> at <?php the_time('g:i a'); ?>
                    <i class="icon-chat" style="font-size:7px; color:#9B362F"></i> <?php comments_number('0 Comments', '1 Comments', '% Comments' );?></div>
                </div>

    <?php endwhile; endif; ?>

    <div class="navigation">
        <div class="alignleft"><?php previous_posts_link('&laquo; Previous') ?></div>
        <div class="alignright"><?php next_posts_link('More &raquo;') ?></div>
    </div>

    <?php wp_reset_query();  ?>

</div>

我已经读过使用带分页的query_posts有很多问题,但我尝试过的每个解决方案都失败了。

谢谢!

1 个答案:

答案 0 :(得分:1)

建议放弃使用query_posts,保留主页上的原始查询,并使用pre_get_postsfunctions.php文件修改查询,例如:

add_action( 'pre_get_posts','so16286638_pre_get_posts' );
function so16286638_pre_get_posts( $query )
{
    if( is_home() && $query->is_main_query() ){
        $query->set( 'cat', 'home' );
        $query->set( 'post_type', 'post' );
        // more params
    }
    return $query;
}

更多信息:https://wordpress.stackexchange.com/questions/50761/when-to-use-wp-query-query-posts-and-pre-get-posts