我正在建立一个具有事件功能的Wordpress网站。“事件”页面是使用自定义帖子类型创建的。
我想让人们能够按日期搜索/过滤事件。例如,他们可以搜索2011年12月2日至2012年3月1日之间发生的所有事件,并从日期介于12月和3月(即12月、1月、2月和3月)之间的事件中获取结果。
我想知道最好的方法。有什么想法吗?
通过查看此页面上的“按日期搜索事件”功能,您可以看到我想要实现的一个示例http://www.londontown.com/events
以下是开始和结束日期元框的代码:
$prefix = \'ghes_\'; add_filter( \'ghes_meta_boxes\', \'ghes_sample_metaboxes\' ); function ghes_sample_metaboxes( $meta_boxes ) { global $prefix; $meta_boxes[] = array( \'id\' => \'event_meta\', \'title\' => \'Event Metabox\', \'pages\' => array(\'event\'), // post type \'context\' => \'normal\', \'priority\' => \'high\', \'show_names\' => true, \'fields\' => array( array( \'name\' => \'Event Start Date\', \'desc\' => \'field description (optional)\', \'id\' => $prefix . \'event_start_timestamp\', \'type\' => \'text_date_timestamp\' ), array( \'name\' => \'Event End Date\', \'desc\' => \'field description (optional)\', \'id\' => $prefix . \'event_end_timestamp\', \'type\' => \'text_date_timestamp\' )以下是日期数据的保存方式:
case \'text_date_timestamp\':
echo \'<input class="ghes_text_small ghes_datepicker" type="text" name="\', $field[\'id\'], \'" id="\', $field[\'id\'], \'" value="\', $meta ? date( \'m\\/d\\/Y\', $meta ) : $field[\'std\'], \'" /><span class="ghes_metabox_description">\', $field[\'desc\'], \'</span>\';
break;
这是我的搜索框:<form action="<?php bloginfo(\'url\'); ?>" method="get" id="searchform" class="form_search">
Event Search:
<!-- START Category Search -->
<select name="event_cat">
<option value="0">Select...</option>
<?php
$theterms = get_terms(\'event_cat\', \'orderby=name\');
foreach ($theterms AS $term) :
echo "<option value=\'".$term->slug."\'".($_GET[\'event_cat\'] == $term->slug ? \' selected="selected"\' : \'\').">".$term->name."</option>\\n";
endforeach;
?>
</select>
<!-- END Category Search -->
<!-- START Date Search -->
<span class="em-events-search-dates">
<?php _e(\'between\',\'ghes\'); ?>:
<input class="ghes_text_small ghes_datepicker" type="text_date_timestamp" name="ghes_event_start_timestamp" id="ghes_event_start_timestamp" value=""/>\'
<input type="hidden" id="ghes_event_start_timestamp" name="start" value="" />
<?php _e(\'and\',\'ghes\'); ?>
<input class="ghes_text_small ghes_datepicker" type="text" name="ghes_event_end_timestamp" id="ghes_event_end_timestamp" value=""/>\'
<input type="hidden" id="ghes_event_end_timestamp" name="end" value="" />
</span>
<!-- END Date Search -->
<input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce(\'search_events\'); ?>" />
<input type="submit" value="<?php _e(\'Search\',\'ghes\'); ?>" class="em-events-search-submit" />
</form>
如何让表单处理“日期搜索”数据并在用户选择的日期之间显示结果?搜索表单是否缺少任何内容?是否有一些我应该添加到函数中的内容。php来实现这一点?
我已经寻找答案将近两周了,我真的很想知道这是怎么回事。如果您对如何实现这一目标有想法,请分享您的想法。
提前谢谢。