我可以修改WP_Query实例或通过修改克隆它吗?

时间:2017-07-27 作者:Flimm

假设我创建了一个all_movies 返回WP_Query 实例,其中包含自定义类型的所有帖子movie.

$movies = all_movies(); // returns WP_Query instance
我想修改WP_Query 对象仅显示某个作者的电影,可能使用如下代码:

$movies = all_movies();
$movies->filter([\'author\' => 14]); // not real code
或者我可以创建一个新的WP_Query 复制现有实例并进行修改的实例:

$movies = all_movies();
$new_movies = $movies->filter([\'author\' => 14]); // not real code
当然,我希望查询只有在最后一分钟才能解决。我已经习惯了其他可能出现类似情况的ORM系统。是否可以使用Wordpress\'WP_Query

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

WP_Query 可以多次重复循环检索到的帖子,但决不是重复/迭代地查询它们。你可以这么做$query->query($args) 再说一次,但与仅仅制作一个新的干净对象相比,没有什么意义。

在您的情况下,我认为让自定义函数接受可选参数是明智的,大致如下:

function all_movies( $args = [] ) {

    $defaults_args = [\'stuff\'];

    return new WP_Query( array_merge( $default_args, $args ) );
}

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post