具有分类结构的地理搜索

时间:2014-10-12 作者:emanuele

我在wp中存储了具有定义分类法的位置。我想进行一次可以考虑位置的搜索,例如,

搜索“car rental,Maryland”

全部的car rental 存储为用户,每个用户都有location number 在里面wp_usermeta 映射到位置名称的表。每当用户设置字段时,此映射由主题完成location 在is帐户中。

在我的位置分类法中,我指定了位于马里兰州的所有城市。

所以租车公司“XYZ”进来了Annapolis 必须导致上一次搜索的输出。

如何在搜索中利用分类结构?

1 个回复
SO网友:TTech IT Solutions

在计划显示表单的任何位置输入表单

/**** The Form ****/
<form name="searchcars" method="get" action="http://yourdomain.com/your-page-template-slug"> 
    <label>Search</label>
    <input type="text" name="searchfor">

    <label>Location</label>
    <Select name="location">
        <?php
        $locations = get_terms(\'locations\');
        foreach($locations as $location)
        {
        ?>
        <option value="<?php echo $location->slug; ?>"><?php echo $location->name; ?></option>
        <?php
        }
        ?>
    </select>
    <button type="select" name="search">Search</button>
</form>
创建一个新的文件模板,并将其分配给一个页面,其中的slug将用作上述表单的操作。

<?php
/*
*Template Name: Custom Search
*/
$searchterm = isset($_GET[\'searchfor\']) ? $_GET[\'searchfor\'] : \'\';
$location = isset($_GET[\'location\']) ? $_GET[\'location\'] : \'\'; 

$query =  new WP_Query(array(
\'post_type\' => \'...\', /** Replace ... with the name of your custom post type **/
\'location\'    => $location, /** Replace the \'location\' with \'<name-of-your-taxonomy>\' **/
\'posts_per_page\' => 10,
\'like\' => $searchterm  /** This is what we have added with the custom filter **/
)) ;

while($query->have_posts()) : $query->the_post();
 /*output the results **/
endwhile; 
?>
将其输入到函数文件中,以将like参数作为数组选项添加到wordpress查询中。

 <?php
      /** Like Filter ***/
    add_filter( \'posts_where\', \'wpse18703_posts_where\', 10, 2 );
    function wpse18703_posts_where( $where, &$wp_query )
    {
        global $wpdb;
        if ( $wpse18703_title = $wp_query->get( \'like\' ) ) {
            $where .= \' AND \' . $wpdb->posts . \'.post_title LIKE \\\'\' . esc_sql( like_escape( $wpse18703_title ) ) . \'%\\\'\';
        }
        return $where;
    }
    ?>
注释参考:WP_Query with "post_title LIKE 'something%'"?

结束

相关推荐

Custom Field Search

我正在尝试创建一个自定义搜索表单,用于搜索我创建的自定义帖子类型。表单需要搜索两个自定义分类法(类似于标记和类别)和帖子的正文文本。将有一个搜索输入,用于搜索正文和标签,还有一个下拉列表,用于按类别(任意、类别1、类别2、类别3)进行过滤。我需要制作什么样的模板,这需要什么样的代码?非常感谢!