META_QUERY以检查所有自定义域

时间:2019-01-10 作者:Abhik

我必须使用meta_query 参数,以便在为对象保存的所有可用自定义字段值(以数组格式)中检查关键字。每个对象的元键都不同,因此我不能使用任何静态键。

这是我想要实现的目标。

\'meta_query\' => array(
    \'relation\' => \'OR\',
    array(
        \'key\' => \'state\', // This is where I am lost
        \'value\' => \'mykeyword\', //Keyword to look for
        \'compare\' => \'EXISTS\' //If keword exists in value (array)
    ),
),  
是否可以使用meta_query 还是需要使用自定义数据库查询
谢谢

1 个回复
SO网友:George

如果您不亲自提出一个MySQL查询,您可以得到一个meta_key并基于结果构建查询数组。

另一方面,我想你可能误解了EXISTS. 这并不意味着找到value 在给定meta的值内传递的参数。我想你是说LIKE, 如果我错了,请纠正我。

$query_arg = array(
    ...
);

global $wpdb;

$meta_keys = $wpdb->get_col("SELECT DISTINCT `meta_key` FROM {$wpdb->postmeta}");

foreach($meta_keys as $meta_key){
    $query_arg[\'meta_query\'][] = array(
        \'key\' => $meta_key,
        \'value\' => \'mykeyword\',
        \'compare\' => \'LIKE\'
    );
}

$query_arg[\'relation\'] = \'OR\';
尽管从MySQL的角度来看,这可能不是最优化的方式。

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: