指定' post_per_page'用于多个后循环

时间:2016-10-28 10:53:06

标签: php wordpress

我创建了一个帖子循环,显示了2种不同类型的帖子('投资组合'以及'帖子')。

<?php 

    $work = array(
        'post_type' => array('portfolio','post'),
        'posts_per_page' => '8',
    );

    $loop = new WP_Query( $work );

        while ( $loop->have_posts() ) : $loop->the_post();

            if ( get_post_type() == 'portfolio' ) {
                // My portfolio code will go here
            } 

            else if ( get_post_type() == 'post' ) {
                // My post code will go here
            }

        endwhile;

?>

这似乎工作正常,但我想做的是限制每种类型显示的帖子数量。我已将其设置为总体限制为8但我想进一步扩展此范围并将每种类型限制为4(4 + 4 =总体上为8)。

1 个答案:

答案 0 :(得分:0)

嘿,我想不出一个简单的解决方案,但你有一些可能实现这一目标。

  1. 查询所有帖子并制作一个计数器(如果您有很多帖子,表现不佳)

    $query1
  2. 提出两个不同的查询 - 一个用于最后四个投资组合,另一个用于最后4个帖子

  3. $work = array(
        'post_type' => array('portfolio','post'),
        'posts_per_page' => -1,
    );
    
    $count_portfolio = 0;
    $count_post = 0;
    
    $loop = new WP_Query( $work );
    
        while ( $loop->have_posts() ) : $loop->the_post();
    
            if ( get_post_type() == 'portfolio' && $count_portfolio < 4 ) {
                $count_portfolio++;
    
            } 
    
            else if ( get_post_type() == 'post' && $count_post < 4) {
                $count_post++;
            }
    
            if($count_portfolio >=3 && $count_post >=3)  {
                break;
            }
    
    
        endwhile;
    
    1. 使用$ wpdb进行自定义调用以准确查询您想要的内容