虽然我很好奇如何在没有meta\\u查询的情况下做到这一点。。。
您不能“要求”该查询获取另一篇文章,您只需运行另一个查询,但这将很快变得复杂,更不用说服务器的劳动密集型了。类似这样(未经测试):
$loop = new wp_query(array(\'posts_per_page\' => 3));
$grab_more = false;
while($loop->have_posts()) {
$loop->the_post();
if ($grab_more) {
$more = new wp_query(array(\'posts_per_page\' => 1,\'offset\' => 3));
if(!empty($more->posts[0])) {
setup_postdata($more->posts[0]);
}
$grab_more = false;
}
if(get_post_meta($post->ID, \'skip_me\', true) == true){
// do something to ask for one more post,
// as we really want 3 total!
echo \'get more\';
$grab_more = true;
continue;
} else {
echo \'the_content\';
the_content();
}
}
我确信那是辆马车。我在一分钟内就搞定了
I am sure 它并不是在所有情况下都能正常工作——也许它在任何情况下都不能正常工作:)。这只是一点概念化。我不容易测试,但
is not the right way to do this anyway. 例如,您可以使用它生成大量的数据库查询,而循环确实会减慢速度。方法是:
如果可能,请使用查询参数。这就是ChipBennet的建议,在您的示例案例中,这是正确的答案如果没有查询参数,则使用筛选器。如果你足够好SQL
您可以使查询执行任何您想要的操作the
right set of filters. 如果不能使用提供的查询参数,就我而言,这是唯一正确的选择。尝试这样嵌套查询是复杂的,而且是错误的