如何使用wp_Query进行WordPress搜索?

时间:2012-06-08 作者:3ph

我想创建一个自定义搜索表单,根据大约4个自定义字段的值搜索帖子。我尝试使用wp\\u query来实现这一点,但到目前为止,我最大的问题是,在自定义字段中搜索数据时,我没有得到任何结果,即使是我确定存在的数据。此外,我不知道如何删除普通的WordPress“关键字”搜索框,而只使用我的四个组合框。

这是我搜索的代码。php文件:http://pastie.org/private/jhgsmaolvjyswyhsfphlfa
这是我搜索表单中的代码。php:粘贴。org/private/o3hrtqajh8hbkiht1nyoba以下是表单布局的图像:http://i.stack.imgur.com/N8ncg.png

谢谢

2 个回复
SO网友:moraleida

您需要将搜索查询与新的WP查询相结合。。。

在你的搜索中,可能是这样的。php

<?php

global $wp_query; // get the global object

$thesearch = get_search_query(); // get the string searched

// merge them with one or several meta_queries to meet your demand
$args = array_merge( $wp_query->query, array( 
   \'meta_query\' => array(
    array(
        \'key\' => \'field_to_seach\',
        \'value\' => $thesearch,
        \'compare\' => \'IN\'
    )
)
    ));
query_posts( $args ); // alter the main query to include your custom parameters

?>

SO网友:Krzysiek Dróżdż

您始终可以使用pre_get_postsposts_where 挂钩。

这里有一个使用pre_get_posts 要从搜索结果中排除某些帖子,请执行以下操作:http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts#Exclude_Pages_from_Search_Results

这是更好的解决方案,因为您不会再进行另一个冗余的SQL查询。

结束