不同归档页面上的帖子数量限制不同

时间:2016-09-01 作者:mkafiyan

我将每页帖子数从设置>每页最大帖子数设置为20。我有两种不同的自定义帖子类型“book”和“author”,用于每个帖子的存档。我想在页面中加载不同数量的帖子。我想在图书档案中每页加载20本书,在作者档案中每页加载5篇文章。我还使用了WP PageNavi插件。

这是我的密码

<?php
$paged = get_query_var( \'paged\' ) ? get_query_var( \'paged\' ) : 1;
$args = array( \'post_type\' => \'Author\',\'paged\' => $paged,\'posts_per_page\' =>5 ); 
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
<a href="<?php the_permalink(); ?>" class="writer-link col-md-12 col-sm-12 col-xs-12">

    <div class="writer-row1 col-md-12 col-sm-12 col-xs-12">
        <div class="col-md-2 col-sm-3 col-xs-12 image-right">
        <?php the_post_thumbnail(\'post-thumbnail\',array(\'class\' => \'img-responsive\')); ?>
        </div>
    <div class="col-md-10 col-xs-12 col-sm-9 col-xs-12 pull-right writer-content">
    <h3><?php the_title(); ?></h3>
    <h4><?php the_field(\'auth-trans\'); ?></h4>  
    <?php if ( get_field(\'writer-bio\') ) { 
        echo \'<p>\'.get_field(\'writer-bio\').\'</p>\';} ?>

            <span>...</span>
    </div>
</div>
</a>

   <?php endwhile; // End of the loop. ?>           

    <div class="wp-pagenavi row">
        <div id="wp_page_numbers text-center col-sm-6 center-margin">
            <ul>
                <li class="active_page text-center"><?php if(function_exists(\'wp_pagenavi\')) { wp_pagenavi(array( \'query\' => $loop )); } ?></li>
            </ul>
        </div>
   </div>
书籍存档没有问题:它可以加载20篇文章。但我不知道如何才能使作者页面每页只加载5篇文章,在它加载了5篇第一篇文章之后,它将进入下一页。

2 个回复
SO网友:megi

在函数中添加以下代码。php文件,这里的“event”是自定义的post类型(根据您的post类型进行更改),所以在这里它将在事件列表页面上显示6条post,您还需要复制默认存档。php文件,并复制和创建新的存档事件。php(用post类型替换事件)。

 function custom_type_archive_display($query) {
    if (is_post_type_archive(\'event\')) {
         $query->set(\'posts_per_page\',6);
         $query->set(\'orderby\', \'date\' );
         $query->set(\'order\', \'DESC\' );
        return;
    }     
}
add_action(\'pre_get_posts\', \'custom_type_archive_display\');
希望这有帮助:)

有关如何在自定义页面上列出自定义帖子的更多详细信息,请参阅此链接Custom Posts on Different Pages

SO网友:cjbj

您必须使查询参数依赖于您正在生成的存档类型(WP已经从page slug). 幸运的是,有一个测试,叫做is_post_type_archive. 在代码的开头,应包括以下内容:

if (is_post_type_archive(\'books\')) {
  $args = array( \'post_type\' => \'Books\',\'paged\' => $paged,\'posts_per_page\' =>20 );
  }
elseif (is_post_type_archive(\'author\')) {
  $args = array( \'post_type\' => \'Author\',\'paged\' => $paged,\'posts_per_page\' =>5 );
  }

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next