Multiple Meta key in search

时间:2017-08-07 作者:Jaisal

我有一个wordpress插件,可以从数据库中搜索学生的结果。如果我输入卷号,它将显示结果。现在,我想修改这个,就像我输入学生的手机号码一样,它也应该显示结果。代码如下

    enter // ResultPress search function
function result_press_search() {
    if ( ! isset( $_POST[\'search\'] ) )
        exit;

    query_posts(
            array(
            \'posts_per_page\' => 1,
            \'no_found_rows\' => true,
            \'post_type\' => \'rrf-result\',
            \'meta_key\' => \'roll\',
            \'meta_value\' => wp_unslash( ( string ) $_POST[\'search\'] ),
            \'rrf_result_year\' => wp_unslash( ( string ) $_POST[\'result_year\'] ),
        )
    );

    include_once( \'templates/marksheet-theme-1.php\' );
    exit;
}

1 个回复
SO网友:gdaniel

您需要在使用query\\u帖子(不推荐)和使用WP_Query.

使用WP Query类似于Query\\u posts,您将传递一个参数数组,并包括meta\\u Query args。类似于:

$args = array(
    \'posts_per_page\' => 1,
    \'no_found_rows\' => true,
    \'post_type\' => \'rrf-result\',
    \'rrf_result_year\' => wp_unslash( ( string ) $_POST[\'result_year\'] ),
    \'meta_query\' => array(
        \'relation\' => \'OR\',
        array(
            \'key\' => \'roll\',
            \'value\' => wp_unslash( ( string ) $_POST[\'search\'] ),
        ),
        array(
            \'key\' => \'info_3\',
            \'value\' => wp_unslash( ( string ) $_POST[\'search\'] )
        )
    ) 
);



$results = new WP_Query($args);
如果有任何结果,可以通过手动循环访问它们$results->posts 或者使用wordpress方法:

if($results->have_posts()):
    while($results->have_posts():
        $results->the_post();
        // do something here
    endwhile;
endif;
在您的情况下,我不知道您需要什么,因为您包含了另一个模板部分,我不知道其中包含什么。我也不确定您使用的插件是否以任何方式修改了查询。

结束