【问题标题】:pagination for custom post type archive page自定义帖子类型存档页面的分页
【发布时间】:2018-02-26 15:31:40
【问题描述】:

我正在尝试将分页添加到 archive-CustomPostType.php 页面中的以下代码,但它不显示分页或显示空白页面。 我的代码:

   <?php get_header(); ?> 
 <h2 class="ptm pbm mbl text-right red-bg"><span>سریال</span></h2>

<div class="container">

 <?php 
            $terms =  get_queried_object();

          $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

               $posts = get_posts(array(

                 'post_type' => 'series',
                 'posts_per_page' => 20,
                 'paged' =>$paged,
                  'category'   => $terms->term_id,

                 'meta_query' => array(
                     array(
                     'key' => 'is_season',
                     'compare' => '==',
                     'value' => '0'
                   )
                 )

               ));
               if( $posts ): ?>
            <ul>
               <?php foreach( $posts as $post ): 
                  setup_postdata( $post )

                  ?>


              <!--HTML goes here-->



               <?php endforeach; ?>
            </ul>
             <div class="pagination">
        <?php wp_pagenavi(); ?> 
      </div>
            <?php wp_reset_postdata(); ?>
            <?php endif; 
                  ?>

</div>
<?php get_footer(); ?>

我正在使用页面导航进行分页,但我认为这不是问题,因为我尝试使用普通的 wordpress 分页但没有帮助。

我认为问题来自get_queried_object,我不知道如何处理。

任何帮助将不胜感激。

【问题讨论】:

  • $posts 是否返回任何数据?
  • 下面的代码对你有用吗?
  • @andrew-schultz 是的,确实如此。它工作正常,但只要我添加分页,我就会看到空页面

标签: wordpress loops pagination


【解决方案1】:

你可以试试这个代码。

<?php get_header(); ?>
    <h2 class="ptm pbm mbl text-right red-bg"><span>سریال</span></h2>

    <div class="container">

        <?php 
            $terms =  get_queried_object();

          $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;

               $posts = get_posts(array(

                 'post_type' => 'series',
                 'posts_per_page' => 20,
                 'paged' =>$paged,
                  'category'   => $terms->term_id,

                 'meta_query' => array(
                     array(
                     'key' => 'is_season',
                     'compare' => '==',
                     'value' => '0'
                   )
                 )

               ));
               if( $posts ): ?>
            <ul>
                <?php foreach( $posts as $post ): 
                  setup_postdata( $post )

                  ?>


                    <!--HTML goes here-->



                    <?php endforeach; ?>
            </ul>
            <div class="pagination">
                <?php
        the_posts_pagination( array(
            'mid_size'  => 2,
            'prev_text' => 'Previous',
            'next_text' => 'Next',
        ) );
    ?>
            </div>

            <?php else : ?>
                <p>
                    <?php _e( 'Sorry, no posts matched your criteria.' ); ?>
                </p>
                <?php endif; ?>
                    ?>

    </div>
    <?php get_footer(); ?>

在functions.php中修改查询帖子类型

add_action( 'pre_get_posts' ,'wpse222471_query_post_type_portofolio', 1, 1 );
function wpse222471_query_post_type_portofolio( $query )
{
    if ( ! is_admin() && is_post_type_archive( 'customposttype' ) && $query->is_main_query() )
    {
        $query->set( 'posts_per_page', 6 ); //set query arg ( key, value )
    }
}

【讨论】:

  • 感谢代码,但分页仍然显示空白页面。例如我有 40 个帖子,它显示 10 页...
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多