Php WP_查询:如何在每页分配帖子之前测试粘性帖子?

Php WP_查询:如何在每页分配帖子之前测试粘性帖子?,php,wordpress,Php,Wordpress,有没有办法“测试”是否有粘帖? 如果有粘性帖子,我想使用'posts\u per_page'=>'3',如果没有,则使用4,因为我发现粘性帖子会添加到“posts per page”(打破布局):( 我有一个WP_查询,如下所示: $article_args = array( 'post_type' => 'post', 'posts_per_page' => '3', 'post_sta

有没有办法“测试”是否有粘帖? 如果有粘性帖子,我想使用
'posts\u per_page'=>'3'
,如果没有,则使用
4
,因为我发现粘性帖子会添加到“posts per page”(打破布局):(

我有一个WP_查询,如下所示:

$article_args = array(
                'post_type' => 'post',
                'posts_per_page' => '3',
                'post_status' => 'publish',
                'order' => 'DESC'
            );
            $article_query = new WP_Query($article_args);
是否可能,在
args
数组之前测试并使用适当的数字

是的,我已经考虑过了
ignore\u sticky\u posts
,但我还是想把它们包括进去

比我更了解PHP的人有什么建议吗/


谢谢。马丁。

不幸的是没有,但可能还有另一种方法可以实现你的目标

您只需抓取最新的粘性帖子,并首先显示该帖子,然后在第二个查询中抓取其余帖子(或者无论如何,抓取下3篇)

这样,每页将有1个粘滞(如果存在)和3个正常


我们不知道您在这里的最终目标,因此这可能对您不可用。

粘性帖子保存为一个选项,您可以使用
$sticky=get_option('sticky_posts');
进行检查。这将返回一个带有帖子ID的数组。您只需检查该选项是否为空,然后相应地修改参数即可

你可以这样做

$sticky = get_option( 'sticky_posts' );
if( $sticky ) {
    $article_args = array(
        'post_type' => 'post',
        'posts_per_page' => '3',
        'post_status' => 'publish',
        'order' => 'DESC'
    );
}else{
    $article_args = array(
        'post_type' => 'post',
        'posts_per_page' => '4',
        'post_status' => 'publish',
        'order' => 'DESC'
    );
}

$article_query = new WP_Query($article_args);

谢谢,迈克。目标是最多有4篇帖子,不管这是否包括粘性。原因是他们是在一个2跨2向下的布局中,所以有5篇会打乱布局。这似乎不能像我希望的那样完成,所以可能需要另一种方法,也许拉进3篇帖子,告诉客户总是标记一篇粘性帖子。再次感谢。你可以先抓住胶粘物,数一数,然后决定你需要多少普通胶粘物。其实有一个简单的解决方案:-)。检查我的答案