繁体   English   中英

使用分类法细化搜索结果

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM