WP_Query分页不适用于自定义帖子类型的自定义查询

时间:2016-07-06 20:46:20

标签: php wordpress pagination

我已经阅读了很多像我这样的其他问题而且找不到修复方法。由于某种原因,我的自定义查询不是分页,我无法解决原因。这可能是一个愚蠢的原因,但希望你能提供帮助。

这是我的代码。

  <?php
            global $wp_query;
            $title = $wp_query->post->post_title;
            $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
            $query = new WP_Query(
                array(
                    'paged' => $paged,
                    'wpse18703_title' => "$title",
                    'posts_per_page' => 10,
                    'post__not_in'  => array($post->ID),
                    'post_type' => array('post', 'features'),

                )
            );

            if ($query->have_posts()){
                while ( $query->have_posts() ) { $query->the_post(); ?>
                    <a href="<?php echo get_permalink(); ?>">
                    <div class="small-12 large-12 gdb-news-container">
                    <div class="small-12 large-4 columns gdb-news-image">
                        <?php the_post_thumbnail('game-news-thumb'); ?>
                    </div>
                    <div class="small-12 large-8 columns game-title">
                        <h5><?php the_title(); ?></h5>
                    <?php echo content(20); ?>
                    </div>
                        <div class="clearfix"></div>
                    </div>
                    </a>

         <?php
                } //end while
                wp_reset_query();
            } //end if
            ?>

            <?php if ( function_exists('reverie_pagination') ) { reverie_pagination(); } else if ( is_paged() ) { ?>
                <nav id="post-nav">
                    <div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'reverie' ) ); ?></div>
                    <div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'reverie' ) ); ?></div>
                </nav>
            <?php } ?>

2 个答案:

答案 0 :(得分:0)

<?php 
    if(isset($_GET['paged']) && !empty($_GET['paged'])):endif;
    global $wp_query;
    $temp = $wp_query;
    $wp_query = null;
    $title = $wp_query->post->post_title;
    $args = array(
        'paged' => $paged,
        'wpse18703_title' => "$title",
        'posts_per_page' => 10,
        'post__not_in'  => array($post->ID),
        'post_type' => array('post', 'features')
    );
    $wp_query = new WP_Query($args);
    if($wp_query->have_posts()){
        while($wp_query->have_posts()){
            $wp_query->the_post(); ?>
            <a href="<?php echo get_permalink(); ?>">
                <span class="small-12 large-12 gdb-news-container">
                    <span class="small-12 large-4 columns gdb-news-image">
                        <?php the_post_thumbnail('game-news-thumb'); ?>
                    </span>
                    <span class="small-12 large-8 columns game-title">
                        <h5><?php the_title(); ?></h5>
                        <?php echo content(20); ?>
                    </span>
                </span>
            </a>
        <?php }
    }
    $wp_query = null;
    $wp_query = $temp;
    if(function_exists('reverie_pagination')){reverie_pagination();} else if (is_paged()){ ?>
        <nav id="post-nav">
            <div class="post-previous"><?php next_posts_link( __( '&larr; Older posts', 'reverie' ) ); ?></div>
            <div class="post-next"><?php previous_posts_link( __( 'Newer posts &rarr;', 'reverie' ) ); ?></div>
        </nav><?php
    }
?>

我改变了你的等级&#34;小12&#34;跨越,因为将div放入锚标记是无效的W3C代码,因此您可能必须修改您的css文件,具体取决于它的编码方式。

答案 1 :(得分:0)

我认为你正在使用$paged变量错误(我猜你在#34;页面&#34;不是&#34;帖子&#34;)中使用它。这应该适用于页面和帖子:

if ( get_query_var( 'paged' ) ) {
    $paged = absint( get_query_var( 'paged' ) );
} elseif ( get_query_var( 'page' ) ) {
    $paged = absint( get_query_var( 'page' ) );
} else {
    $paged = 1;
}