WordPress元查询-多个键

时间:2018-07-30 05:56:17

标签: wordpress meta

我正在编写一个用于搜索目的的元查询。我总共有16个键(字段),我需要从这些键中搜索关键字。到目前为止,我正在从4个键(键)中检索结果。但是,当我为所有字段扩展代码时,我得到了错误。请指出错误以及正确的做法。 运行正常的代码:

$WorkinFilter_k_s = array(
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'relation' => 'OR',
            array(
                'key' => 'Building_Name',
                'value'   => '',
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'Street',
                'value'   => $keywords1,
                'compare' => 'LIKE'
            ),
        ),
        array(
            'relation' => 'OR',
            array(
                'key' => 'Town',
                'value'   => $keywords1,
                'compare' => 'LIKE'
            ),
            array(
                'key' => 'Description',
                'value'   => $keywords1,
                'compare' => 'LIKE'
            ),
        ),
    )
); 

当我扩展所有16个字段时的代码。它不起作用

$WorkinFilter_k_s = array(
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'relation' => 'OR',
            array(
                'relation' => 'OR',
                array(
                    'relation' => 'OR',
                array(
                    'relation' => 'OR',
                array(
                    'key'     => 'Street',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'),
                array(
                    'key'     => 'COMMENTS1',
                    'value'   => $keywords1,
                    'compare' => 'LIKE')
                ),
                array(
                    'relation' => 'OR',
                array(
                    'key'     => 'COMMENTS3',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                ),
                array(
                    'key'     => 'Town',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                )
                )
                ),
                array(
                    'relation' => 'OR',
                array(
                    'key'     => 'Building_Name',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                )
                array(
                    'key'     => 'Description',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                )
                ),
                array('relation' => 'OR',
                array(
                    'key'     => 'District',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'),
                array(
                    'key'     => 'BulletPoint5',
                    'value'   => $keywords1,
                    'compare' => 'LIKE')
                    )
                )
            ),  
            array(
            'relation' => 'OR',
            array(
                'relation' => 'OR',
                array(
                    'relation' => 'OR',
                array(
                    'relation' => 'OR',
                array(
                    'key'     => 'BulletPoint2',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'),
                array(
                    'key'     => 'BulletPoint3',
                    'value'   => $keywords1,
                    'compare' => 'LIKE')
                ),
                array(
                    'relation' => 'OR',
                array(
                    'key'     => 'BulletPoint1',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                ),
                array(
                    'key'     => 'BulletPoint6',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                )
                )
                ),
                array(
                    'relation' => 'OR',
                array(
                    'key'     => 'BulletPoint7',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                )
                array(
                    'key'     => 'BulletPoint8',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'
                )
                ),
                array('relation' => 'OR',
                array(
                    'key'     => 'BulletPoint9',
                    'value'   => $keywords1,
                    'compare' => 'LIKE'),
                array(
                    'key'     => '',
                    'value'   => $BulletPoint10,
                    'compare' => 'LIKE')
                    )
                )
            ) 

        )
    );

1 个答案:

答案 0 :(得分:0)

它可能仍然工作效率低下,但是您只需要清理代码即可。

$WorkinFilter_k_s = array(
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key'     => 'Street',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'COMMENTS1',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'COMMENTS3',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'Town',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'Building_Name',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'Description',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'District',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint5',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint2',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint3',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint1',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint6',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint7',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint8',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
        array(
            'key'     => 'BulletPoint9',
            'value'   => $keywords1,
            'compare' => 'LIKE',
        ),
    ),
);