有没有办法测试'是否有粘贴帖子?
如果有一个粘性帖子,我想使用'posts_per_page' => '3'
,如果没有,请使用4
,因为我发现粘性帖子会添加到每个帖子中网页'这打破了布局:(
我有一个WP_query如下:
$article_args = array(
'post_type' => 'post',
'posts_per_page' => '3',
'post_status' => 'publish',
'order' => 'DESC'
);
$article_query = new WP_Query($article_args);
这可能吗,也许在args
数组之前测试一下并使用适当的数字?
是的,我考虑过ignore_sticky_posts
,但我确实想要将它们包括在内。
任何了解PHP比我更好的人的建议?! :/
感谢。马丁。
答案 0 :(得分:0)
不幸的是没有,但可能还有另一种方法来实现你所追求的目标。
你可以简单地抓住最新的粘贴帖子,先显示,然后在第二个查询中抓住剩下的帖子(或者接下来的3个帖子)。
这样,您每页都会获得1个粘性(如果存在)和3个正常粘性。
我们不知道你的最终目标,所以这可能对你无法使用。
答案 1 :(得分:0)
粘性帖子会保存为一个选项,您可以使用$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);