Php 每个职位类型限制6个职位

Php 每个职位类型限制6个职位,php,jquery,wordpress,Php,Jquery,Wordpress,我正在努力确定解决这个问题的最佳方法。我创建了一个插件,可以调用三种帖子类型(帖子、事件、新闻),所以在我的插件中,我使用一个查询来调用它们 $args = array( 'post_type' => array( 'post', 'tribe_events', 'news_update' ), 'posts_per_page' => 6 ); $news = new WP_Query( $args ); 我需要做的是抓取每种帖子类型的最新6篇帖子,以便与jQuery选项卡一起使

我正在努力确定解决这个问题的最佳方法。我创建了一个插件,可以调用三种帖子类型(帖子、事件、新闻),所以在我的插件中,我使用一个查询来调用它们

$args = array(
'post_type' => array( 'post', 'tribe_events', 'news_update' ),
'posts_per_page' => 6
);

$news = new WP_Query( $args );
我需要做的是抓取每种帖子类型的最新6篇帖子,以便与jQuery选项卡一起使用。使用
posts\u per\u page
arg限制整个查询,这不是我想要的。因此将有四个选项卡

All | News | Blog | Events

每个选项卡应仅显示6篇文章


我必须做的一些选择是什么?任何帮助都将不胜感激

就我个人而言,我会将它们分为三个独立的查询,并使用瞬态来避免重载。我很好奇是否有一个定制的SQL查询来实现这一点,如果可能的话,我希望其他人能给我更多的信息

我的解决办法是:

if ( ! ( $news = get_transient( 'wpse_tab_posts_news' ) ) ) { 
    $news = get_posts( array(
        'post_type' => 'post',
        'posts_per_page' => 6,
        'no_found_rows' => true,
    ) );

    set_transient( 'wpse_tab_posts_news', $news, DAY_IN_SECONDS );
}
对这三个查询重复此操作。一个用于新闻,一个用于部落事件,一个用于新闻更新

然后,您将有三个帖子数组,每次存储一天

我鼓励您研究瞬态API,特别是如何尽早删除瞬态,以便在发布新帖子时更新

然后可以合并这些数组,以便在“全部”选项卡中使用


进一步阅读:

最简单的方法是对每种帖子类型运行
wp\u查询
三次。谢谢您的回答。我确实考虑过使用三个单独的查询,但没有考虑使用瞬态API,尼斯触摸。我将研究API。