我正在对插件中的主查询应用一个分类条件,它从中排除了一系列post格式。
具体操作如下:
$query->set(\'tax_query\', array(
array(
\'taxonomy\' => \'post_format\', // Post formats are queried as taxonomies
\'field\' => \'slug\',
\'terms\' => self::$formats,
\'operator\' => \'NOT IN\'
)
));
这是有效的-帖子格式被排除,因为我希望他们这样做。但问题是如果有
tax_query
条件之前已指定,然后它将被覆盖并在空间和时间上丢失。
有什么方法可以附加我的tax_query
条件而不丢失覆盖之前的所有条件?
最合适的回答,由SO网友:Tom J Nowell 整理而成
$query->set
不是唯一的方法。
你想要的是$query->get
. 使用get
您可以检索现有值,附加所需的其他部分,然后使用新参数设置查询变量
$tax_query = $query->get( \'tax_query\' );
// add the extra parameter
$query->set( \'tax_query\', $tax_query );
添加额外参数只是使用标准PHP数组功能附加另一项。