自定义帖子类型不显示分页

时间:2013-01-14 作者:Desi

这里的另一位用户建议我使用的查询不正确,因此我正在更改代码。然而,HTML中没有显示第一段代码(下面)中的分页,而第二段代码(我的原始代码)显示得很好。

此代码无效(新代码):

                    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
                    $loop = new WP_Query( array(
                        \'post_type\' => \'movies\',
                        \'paged\' => $paged,
                        \'posts_per_page\' => 6
                    ));

                    if($loop->have_posts()){
                        while ( $loop->have_posts() ) {
                            $loop->the_post();

                            << LOOP GOES HERE >>


                   <?php
                      }
                   }
                   my_paginate_links();
                   wp_reset_postdata();
                   ?>
这一个有效(我的原始代码):

                    $c=0;
                    $i=1;

                    $temp = $wp_query;
                    $wp_query = null;
                    $wp_query = new WP_Query();
                    $wp_query->query(\'post_type=movies\' . \'&paged=\' . $paged . \'&posts_per_page=6\');

                    while ( $wp_query->have_posts() ) : $wp_query->the_post(); $c++;


                 << LOOP GOES HERE >>

                <?php
                    endwhile; 
                    my_paginate_links();
                    $wp_query = null;
                    $wp_query = $temp;
                    wp_reset_query();
                ?>
如何使分页显示在第一个代码块中?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

与其尝试修复您的查询,我建议您使用自定义的post类型存档来完全避开它!

打开permalinks后,您应该可以通过以下方式查看所有电影帖子的列表:

example.com/movies
然后,在主题中创建archive-movies.php, 它将被用来代替archive.php/index.php 电影档案。确保使用默认循环而不是自定义循环,WordPress将负责查询中的帖子类型和分页。

要控制此存档上显示的帖子数量,可以对pre_get_posts 在主查询发生之前对其进行修改。

function john_movies_pagesize( $query ) {
    // exit out if it\'s the admin or it isn\'t the main query
    if ( is_admin() || ! $query->is_main_query() )
        return;
    // so its not admin, and its the main query, is it the movies post archive?
    if ( is_post_type_archive( \'movies\' ) ) {
        // it is!! Set the posts_per_page to 6
        $query->set( \'posts_per_page\', 6 );
        return;
    }
}
add_action( \'pre_get_posts\', \'john_movies_pagesize\', 1 );

SO网友:Mario Mc

以下是如何将分页分页与自定义帖子类型一起使用的工作示例:

<?php
$paged = ( get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$args = array( \'post_type\' => \'newsfeed\', \'posts_per_page\' => 5, \'paged\' => $paged );
$newsquery = new WP_Query( $args );
if ( $newsquery->have_posts() ) :
while ( $newsquery->have_posts() ) : $newsquery->the_post();

the_excerpt(); //query here

global $newsquery; $total_pages = $newsquery->max_num_pages; if ( $total_pages > 1 ) {
$big = 999999999; // need an unlikely integer

echo paginate_links( array(
\'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
\'format\' => \'?paged=%#%\',
\'prev_text\' => __(\' Prev\'),
\'next_text\' => __(\'Next \'),
\'current\' => max( 1, get_query_var(\'paged\') ),
\'total\' => $newsquery->max_num_pages
) );

}
endif; wp_reset_postdata();
?>

结束

相关推荐

wp_list_categories pagination

我想知道我是否可以为wp\\U list\\U类别分页?我尝试了paginate\\u链接,但运气不好。还是有好的解决方法?非常感谢。<?php $orderby = \'name\'; $show_count = 0; $pad_counts = 0; $hierarchical = 1; $taxonomy = \'categories\'; $title = \'\'; $exclude = \