Wordpress循环分页在分页时显示所有页面上的第1页结果

时间:2013-03-12 18:13:25

标签: wordpress

我是wordpress n00b,我遇到了分页问题。我有以下使用的“示例”循环代码:

<div id="content">
    <?php /* Top post navigation */ ?>
    <?php
               $args = array(
               'posts_per_page' => '25',
               'cat' => '-33'
                   ); 
    ?>
    <?php global $wp_query; 
                 $wp_query = new WP_Query( $args );
                 $total_pages = $wp_query->max_num_pages; 
                 if ( $total_pages > 1 ) { ?>

    <?php } ?>

    <?php /* The Loop — with comments! */ ?>
    <?php while ( have_posts() ) : the_post() ?>

    <?php /* Create a div with a unique ID thanks to the_ID() and semantic classes with post_class() */ ?>
                    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <?php /* an h2 title */ ?>
                        <h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( __('Permalink to %s', 'hbd-theme'), the_title_attribute('echo=0') ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>

    <?php /* Microformatted, translatable post meta */ ?>
                        <div class="entry-meta">
                            <span class="meta-prep meta-prep-author"><?php _e('By ', 'hbd-theme'); ?></span>
                            <span class="author vcard"><a class="url fn n" href="<?php echo get_author_link( false, $authordata->ID, $authordata->user_nicename ); ?>" title="<?php printf( __( 'View all posts by %s', 'hbd-theme' ), $authordata->display_name ); ?>"><?php the_author(); ?></a></span>
                            <span class="meta-sep"> | </span>
                            <span class="meta-prep meta-prep-entry-date"><?php _e('Published ', 'hbd-theme'); ?></span>
                            <span class="entry-date"><abbr class="published" title="<?php the_time('Y-m-d\TH:i:sO') ?>"><?php the_time( get_option( 'date_format' ) ); ?></abbr></span>
                            <?php edit_post_link( __( 'Edit', 'hbd-theme' ), "<span class=\"meta-sep\">|</span>\n\t\t\t\t\t\t<span class=\"edit-link\">", "</span>\n\t\t\t\t\t" ) ?>
                        </div><!-- .entry-meta -->

    <?php /* The entry content */ ?>
                        <div class="entry-content">
    <?php the_content( __( 'Continue reading <span class="meta-nav">&raquo;</span>', 'hbd-theme' )  ); ?>
    <?php wp_link_pages('before=<div class="page-link">' . __( 'Pages:', 'hbd-theme' ) . '&after=</div>') ?>
                        </div><!-- .entry-content -->

    <?php /* Microformatted category and tag links along with a comments link */ ?>
                        <div class="entry-utility">
                            <span class="cat-links"><span class="entry-utility-prep entry-utility-prep-cat-links"><?php _e( 'Posted in ', 'hbd-theme' ); ?></span><?php echo get_the_category_list(', '); ?></span>
                            <span class="meta-sep"> | </span>
                            <?php the_tags( '<span class="tag-links"><span class="entry-utility-prep entry-utility-prep-tag-links">' . __('Tagged ', 'hbd-theme' ) . '</span>', ", ", "</span>\n\t\t\t\t\t\t<span class=\"meta-sep\">|</span>\n" ) ?>
                            <span class="comments-link"><?php comments_popup_link( __( 'Leave a comment', 'hbd-theme' ), __( '1 Comment', 'hbd-theme' ), __( '% Comments', 'hbd-theme' ) ) ?></span>
                            <?php edit_post_link( __( 'Edit', 'hbd-theme' ), "<span class=\"meta-sep\">|</span>\n\t\t\t\t\t\t<span class=\"edit-link\">", "</span>\n\t\t\t\t\t\n" ) ?>
                        </div><!-- #entry-utility -->
                    </div><!-- #post-<?php the_ID(); ?> -->

    <?php /* Close up the post div and then end the loop with endwhile */ ?>      

    <?php endwhile; ?>

    <?php /* Bottom post navigation */ ?>
    <?php global $wp_query; $total_pages = $wp_query->max_num_pages; if ( $total_pages > 1 ) { ?>
                    <div id="nav-below" class="navigation">
                        <?php next_posts_link(__( '<span class="meta-nav">&laquo;</span> Older posts', 'hbd-theme' )) ?> <span style="color: #bbb;">&#8226;</span> <?php previous_posts_link(__( 'Newer posts <span class="meta-nav">&raquo;</span>', 'hbd-theme' )) ?>
                    </div><!-- #nav-below -->
    <?php } ?>
</div><!-- #content -->

我有一种感觉,我正在覆盖一些查询值,但我发现各种博客上的信息是矛盾的。我觉得它与我的$args数组有关。

我应该将它连接起来吗?

若然,在哪里? $wp_query

提前感谢您的帮助,并为wordpress noob-ness道歉。

1 个答案:

答案 0 :(得分:1)

我会在args

之前添加
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1; // setup pagination

然后在args

$args = array(
           'posts_per_page' => 25,
           'cat' => '-33',
           'paged' => $paged
        ); 

然后使用它来显示分页

'<div class="classForOld">'.get_next_posts_link('Older', $wp_query->max_num_pages).'</div>'; //Older Link using max_num_pages
'<div class="classForNew">'.get_previous_posts_link('Newer', $wp_query->max_num_pages).'</div>'; //Newer Link using max_num_pages

这就是你所需要的一切。