[英]use taxonomy to refine search results
我是网络开发的新手,我的WordPress模板有一个小问题! 这是我正在谈论的页面: 单击以查看页面
在此页面中,您只能看到某个位置的住宿(在本例中为塞维利亚),我想要做的是以复选框的形式向边栏添加额外的过滤器,以便用户可以选择他们所选择的住宿类型想要某些设施。 例如,如果用户在侧边栏中检查游泳池并单击“提交”,则仅在有游泳池的情况下获得结果。
侧边栏默认情况下随模板一起提供,我知道该从何处获取信息,但我不知道如何添加这些额外的过滤器。 我当时正在考虑使用分类法作为过滤器,因为当我们创建一个新分类时,我们会从列表中检查该住宿的设施! 做这样的事情有可能吗?
我希望我足够清楚,请原谅我的英语,如果有人能给我任何指导或操作方法,我将不胜感激! 谢谢
<?php
/**
* The sidebar containing the main widget area.
*
* If no active widgets in sidebar, let's hide it completely.
*
* @package WordPress
* @subpackage BookYourTravel
* @since Book Your Travel 1.0
*/
?>
<?php if ( is_active_sidebar( 'sidebar' ) ) : ?>
<aside id="secondary" class="widget-area lower" role="complementary">
<ul>
<?php dynamic_sidebar( 'sidebar' ); ?>
</ul>
</aside><!-- #secondary -->
<?php endif; ?>
那就是出现在sidebar.php中的代码
也许那是您想要的侧边栏代码:
<!--sidebar-->
<aside class="left-sidebar">
<article class="refine-search-results">
<form id="side-search" method="get" action="<?php echo $custom_search_results_page; ?>">
<h2><?php _e('Refine search results', 'bookyourtravel'); ?></h2>
<dl>
<input name="what" id="what" value="<?php echo $what;?>" type="hidden" />
<!--Price (per night)-->
<?php
$price_range_bottom = of_get_option('price_range_bottom', '0');
$price_range_increment = of_get_option('price_range_increment', '50');
$price_range_count = of_get_option('price_range_count', '5');
$default_currency = strtoupper(of_get_option('default_currency_select', 'USD'));
if ($price_range_count > 0) {
?>
<?php if ($what == 1 || $what == 2) { ?>
<dt><?php _e('Price (per night)', 'bookyourtravel'); ?></dt>
<?php } elseif ($what == 3) { ?>
<dt><?php _e('Price (per day)', 'bookyourtravel'); ?></dt>
<?php } elseif ($what == 4) { ?>
<dt><?php _e('Price (per person)', 'bookyourtravel'); ?></dt>
<?php } ?>
<dd>
<?php
$bottom = 0;
$top = 0;
$out = '';
for ($i=0; $i<$price_range_count;$i++) {
?>
<div class="checkbox">
<input type="checkbox" id="price<?php echo $i+1; ?>" name="price[]" value="<?php echo $i+1; ?>" />
<label for="price<?php echo $i+1; ?>">
<?php
$bottom = ($i * $price_range_increment) + $price_range_bottom;
$top = (($i+1) * $price_range_increment) + $price_range_bottom - 1;
$out = $bottom;
if ($i == ($price_range_count-1)) {
$out.= ' <span class="curr">' . $currency_symbol . '</span> +';
} else {
$out.= " - " . $top . ' <span class="curr">' . $currency_symbol . '</span>';
}
echo $out;
?>
</label>
</div>
<?php } ?>
</dd>
<!--//Price (per night)-->
<?php } ?>
<?php if ($what == 1 || $what == 2) { ?>
<dt><?php _e('Accommodation type', 'bookyourtravel'); ?></dt>
<dd>
<?php for ($i = 0; $i < count($accommodation_types); $i++) {
$accommodation_type = $accommodation_types[$i];
?>
<div class="checkbox">
<input value="<?php echo $accommodation_type->term_id; ?>" type="checkbox" id="ch<?php echo $i + 1; ?>" name="acc[]" />
<label for="ch<?php echo $i + 1; ?>"><?php echo $accommodation_type->name; ?></label>
</div>
<?php } ?>
</dd>
<!--//Accommodation type-->
<!--User rating-->
<dt><?php _e('User rating', 'bookyourtravel'); ?></dt>
<dd>
<div id="slider"></div>
<input type="hidden" id="rating" name="rating" value="" />
<span class="min">0</span><span class="max">10</span>
</dd>
<!--//User rating-->
<?php } elseif ($what == 3) { ?>
<dt><?php _e('Car type', 'bookyourtravel'); ?></dt>
<dd>
<?php for ($i = 0; $i < count($car_types); $i++) {
$car_type = $car_types[$i];
?>
<div class="checkbox">
<input value="<?php echo $car_type->term_id; ?>" type="checkbox" id="cth<?php echo $i + 1; ?>" name="car_types[]" />
<label for="cth<?php echo $i + 1; ?>"><?php echo $car_type->name; ?></label>
</div>
<?php } ?>
</dd>
<!--//Accommodation type-->
<?php } ?>
</dl>
<div class="f-item datepicker">
<span><?php _e('Date from', 'bookyourtravel'); ?></span>
<div class="datepicker-wrap"><input type="text" placeholder="" id="from" name="from" /></div>
</div>
<?php if ($what == 1 || $what == 2 || $what == 3) { ?>
<div class="f-item datepicker">
<span><?php _e('Date to', 'bookyourtravel'); ?></span>
<div class="datepicker-wrap"><input type="text" placeholder="" id="to" name="to" /></div>
</div>
<?php } ?>
<?php if ($what == 1 || $what == 2) { ?>
<div id="destination" name="destination" class="f-item">
<span><?php _e('Your destination', 'bookyourtravel'); ?></span>
<input type="text" placeholder="<?php _e('City, region, district or specific accommodation', 'bookyourtravel'); ?>" id="term" name="term" />
</div>
<?php } elseif ($what == 3) { ?>
<div id="destination" name="destination" class="f-item">
<span><?php _e('Pick Up', 'bookyourtravel'); ?></span>
<input type="text" placeholder="<?php _e('I want to pick up car in', 'bookyourtravel'); ?>" id="term" name="term" />
</div>
<div id="destination2" name="destination2" class="f-item">
<span><?php _e('Drop Off', 'bookyourtravel'); ?></span>
<input type="text" placeholder="<?php _e('I want to drop off car at', 'bookyourtravel'); ?>" id="term_to" name="term_to" />
</div>
<?php } elseif ($what == 4) { ?>
<div id="destination" name="destination" class="f-item">
<span><?php _e('Tour location', 'bookyourtravel'); ?></span>
<input type="text" placeholder="<?php _e('City, region, district or specific tour', 'bookyourtravel'); ?>" id="term" name="term" />
</div>
<?php } ?>
<input type="submit" value="<?php _e('Search again', 'bookyourtravel'); ?>" class="gradient-button" id="search-submit" />
</form>
</article>
</aside>
<!--//sidebar-->
从住宿页面看,就是旅馆和别墅。 那两个似乎工作正常。 从我看来,我无法完全确定您的问题所在。 您能再改一下吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.