基于多值优化的Meta_Query

时间:2018-03-18 作者:Ante Medic

我需要您在meta\\u查询中提供多个值的帮助。我有一个复选框过滤器。这是我提出的问题:

但是,我担心查询没有得到优化,这会减慢网站的速度。

我阅读了这个问题中提出的解决方案:meta_query with multiple values但是,当我实施该解决方案时,我有以下错误:“Warning: trim() expects parameter 1 to be string“。

有没有办法优化此查询?

我会感激你的帮助。

非常感谢。

$args = array(
    \'post_type\'      => \'post\' ,
    \'meta_key\'       => $meta_value,
    \'orderby\'        => $sort . \' date\',
    \'order\'          => $order_sort,
    \'posts_per_page\' => 10,
    \'cat\'            => $category,
    \'paged\'          => $paged,

    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array(
            \'key\' => \'checkboxes\',
            \'value\' => $face,
            \'compare\' => \'LIKE\'
        ),
        array(
            \'key\' => \'checkboxes\',
            \'value\' => $twitter,
            \'compare\' => \'LIKE\'
        ),
        array(
            \'key\' => \'checkboxes\',
            \'value\' => $telegram,
            \'compare\' => \'LIKE\'
        ),
        array(
            \'key\' => \'checkboxes\',
            \'value\' => $reddit,
            \'compare\' => \'LIKE\'
        ),
        array(
            \'key\' => \'checkboxes\',
            \'value\' => $email,
            \'compare\' => \'LIKE\'
        ),
        array(
            \'key\' => \'checkboxes\',
            \'value\' => $phone,
            \'compare\' => \'LIKE\'
        ),
    )
);

2 个回复
SO网友:Mark Kaplun

Post元数据从未被设计为在查询中有效使用。将其用于LIKE 基于数据的匹配只会让事情变得更可怕。

你需要重新考虑你的数据库。例如,使用分类术语来指示哪个社交网络与帖子相关联。

SO网友:CodeMascot

如果没有其他信息,很难为您的上述问题提供任何解决方案。但看起来你的$face, $twitter, $telegram 等。数据以object 或其他数据类型(非arraystring). 但是meta_query\'svalue 仅接受stringarray. 因此,基于这个假设,我建议您确保您的所有这些数据one dimensional array 要筛选或简化的值的string.

希望这有帮助。

结束

相关推荐