如何查询META_VALUE有数组

时间:2015-06-08 作者:Tri Quang

我在post\\u meta中有如下数组:

array(
    \'option1\' => \'true\',
    \'option2\' => \'true\',
    \'option3\' => \'false\',
    option4\' => \'true\',
    \'option5\' => \'false\'
)
我想过滤option1 值为true。有人能帮我吗?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

不,您不能通过查询来实现这一点。您可以请求所有内容,然后通过PHP手动筛选出项目,但这会很慢。

相反,您需要解决根本问题,即您将序列化的PHP数据存储在单个字段中,而不是多个字段中,例如,您应该有一个option1 元键/值和option2 元键值对等

作为旁注,如果您想使用这些来过滤,也许您应该使用分类法而不是post meta

SO网友:Bas Middelham

我认为您可以使用meta\\u compare选项:

$args = array(
 \'meta_key\'     => \'option1\',
 \'meta_value\'   => true,
 \'meta_compare\' => \'LIKE\'
);
请参见:https://codex.wordpress.org/Class_Reference/WP_Meta_Query

结束

相关推荐

meaning of (array)function()

我看到了这段代码,其中包含了我以前从未见过的部分代码。在此场景中,(数组)的行为是什么?到目前为止,我知道用php创建数组的方法,但从未见过这种情况。// $this->settings = array_merge( $this->settings_defaults(), (array) get_option( $this->settings_slug, $this->settings_defaults() ) ); // &#x