php - 如何根据自定义分类法、开始日期和结束日期在 wordpress 中使用搜索输入来获取帖子?
问题描述
自定义帖子类型---事件
自定义分类法----- myevents
使用 jQuery Datepicker 获取开始日期和结束日期
搜索事件名称的搜索字段
我想通过使用简单的表单搜索来获取自定义帖子类型事件。在其中我在选择选项中获取了自定义分类,然后在最后一个搜索字段中使用 jQuery Datepicker 添加了开始和结束日期。
我的搜索网址如下所示:
http://localhost/customthemedev/?categoryfilter=Techfest&Start=01-May-2019&End=10-May-2019&search=smoke+event+
<form class="select-event-date" method="GET" action="<?php bloginfo('home'); ?>" autocomplete="off" id="filter">
<div class="form-group eventfunction">
<label>Categories</label>
<select class="form-control" name="categoryfilter">
<?php
$tax_terms = get_terms('myevents', array('hide_empty' => '0'));
foreach ( $tax_terms as $tax_term ):
echo '<option value="'.$tax_term->name.'">'.$tax_term->name.'</option>';
endforeach;
?>
</select>
</div>
<div class="form-group selectDate">
<input type="text" class="form-control" placeholder="Start Date" name="Start" id="txtFrom">
</div>
<div class="form-group endDate">
<input type="text" class="form-control" placeholder="End Date" name="End" id="txtTo">
</div>
<div class="form-group searchEvent">
<label>
<img src="<?php echo get_template_directory_uri();; ?>/assets/images/search-22.png" alt="Icon">
</label>
<input type="text" placeholder="Search.." name="search">
</div>
<button type="submit" class="btn btn-default">FIND EVENTS</button>
</form>
解决方案
Try this :
//以数组格式获取所有术语
$termSlug = array();
$tax_terms = get_terms('myevents', array('hide_empty' => '0'));
foreach ( $tax_terms as $tax_term ):
$termSlug[] = $tax_term->slug;
endforeach;
//Assign the date into variable
$start_date = '01-May-2019';
$end_date ='10-May-2019';
//use the date format acccording to SQL format
$start_date_new = date("YOUR DATE FORMAT", strtotime($start_date));
$end_date_new = date("YOUR DATE FORMAT", strtotime($end_date));
$event_args = array(
'post_type' => 'Event', //Post type event
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => -1,
'meta_query'=>array( //Meta Query search
'relation'=>'AND',
array(
'key' => 'start_date',
'value' => $start_date_new, //start date here
'compare' => '>=',
'type' => 'NUMERIC'
),
array(
'key' => 'end_date',
'value' => $end_date_new, //end date here
'compare' => '<=',
'type' => 'NUMERIC'
)
),
'tax_query' => array(
array (
'taxonomy' => 'myevents', //Taxonomy search
'field' => 'slug',
'terms' => $termSlug, //terms in array
)
),
);
$all_events = new WP_Query($event_args);
echo '<pre>';print_r($all_events);echo '</pre>';
推荐阅读
- performance - 以良好的性能迭代状态 Monad 并按顺序收集结果
- python - 将可选数量的参数传递给标志 Python argparse
- r - 为什么 formattable 会忽略我的条件格式?
- python - 为什么我的 django 应用程序无法部署到 heroku(“psycopg2 的构建轮”)?
- python - 估计全局最大值附近的 3-D 网格中的不确定性
- java - 为什么 `ArrayList.add` 会导致 ConcurrentModificationException?
- angular - core.js:6142 ERROR 错误:NG0300:多个组件将节点与标记名 th 匹配
- javascript - 如何在 svelte 中为周围的 DOM 元素设置动画
- sql - 确保使用 VBA 对 Microsoft Access 数据库进行同步 SQL 查询调用
- c - 试图创建从文本文件中复制名称并将它们存储到哈希表中的 ac 程序,但我不断收到“分段错误”