【发布时间】:2014-07-10 20:17:43
【问题描述】:
我正在尝试创建一个自定义过滤器,它将以三个参数查询数据库 - 帖子内容、元值和分类术语。
这是表格代码
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>/search-results">
<div class="search_jobs">
<?php do_action( 'job_manager_job_filters_search_jobs_start', $atts ); ?>
<div class="item">
<input type="text" name="keyword" placeholder="Keyword" />
</div>
<div class="item">
<input type="text" name="location" placeholder="All Locations" />
</div>
<div class="item">
<label for="search_categories"><?php _e( 'Category', 'wp-job-manager' ); ?></label>
<?php wp_dropdown_categories( array( 'taxonomy' => 'job_listing_category', 'hierarchical' => 1, 'show_option_all' => __( 'All Job Categories', 'wp-job-manager' ), 'name' => 'search_categories', 'orderby' => 'name' ) ); ?>
</div>
<div class="search-s">
<input type="submit" class="search-submit" value="Search" />
</div>
</div>
</form>
这是我目前的查询
<?php
$s_key = $_GET['keyword'];
$s_loc = $_GET['location'];
$s_cat = $_GET['search_categories'];
global $wpdb;
$searchquery = $wpdb->get_results(
"
SELECT * FROM wp_posts WHERE 1
AND post_status = 'publish' AND post_type = 'job_listing'
AND post_content LIKE '%$s_key%' AND meta_value LIKE '%$s_loc%'
"
);
?>
重要的部分是关键字只是一个纯文本输入字段,它在帖子内容中搜索关键字。这种方式工作得很好。 位置是元值,键名为 _job_location。 搜索类别是分类术语的下拉列表。分类称为 job_listing_category。 我需要让这个查询搜索所有参数,例如,如果用户决定只使用一个字段,则只搜索一个。查询后我有循环工作正常,所以我没有粘贴它。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
您面临的问题是什么。 ?
-
您需要添加与 post_meta 和分类表的连接以进行关系和搜索。