首页 > 解决方案 > 过滤器不应用 Wordpress

问题描述

我在选项卡中有一个过滤器。我使用电机主题。过滤器必须使用应用选项在主过滤器​​页面上重定向。它重定向和选项应用在列表中,但链接没有改变(应该是这样site.com/?page_id=16410&make=citroen&ca-year=2012&min_price=2000&max_price=200000的:)但它就像这样:(site.com/?page_id=16410主过滤器页面)。在这张图片上,我选择了雪佛兰汽车,但它不适用:雪佛兰

如果我再选择一个选项,它将应用所有选项,但我希望它能够在选项卡中正常工作。

表格代码:

<form action="<?php echo esc_url( stm_get_listing_archive_link() ); ?>" method="post">
    <?php foreach ( $tax_query_args as $taxonomy_term_key => $taxonomy_term ): ?>
        <?php //empty($taxonomy_term[0]->numeric) and ?>
        <?php if ( !empty( $taxonomy_term[0] ) ): ?>
            <div class="col-md-<?php echo esc_attr( $filter_columns_number ); ?> col-sm-6">
                <div class="form-group">
                    <select name="<?php echo ( esc_attr( $taxonomy_term_key ) == "price" ) ? "max_price" : esc_attr( $taxonomy_term_key ) ?>" class="form-control">
                        <option value=""><?php printf( esc_html__( 'Select %s', 'motors' ), stm_get_name_by_slug( $taxonomy_term_key ) ); ?></option>
                        <?php foreach ( $taxonomy_term as $attr_key => $attr ): ?>
                            <option value="<?php echo esc_attr( $attr->slug ); ?>"
                                 <?php if ( $attr->count == 0 && !$taxonomy_term[0]->numeric ) {
                                    echo 'disabled="disabled"';
                                } ?>
                                    data-disabled="<?php echo ( esc_attr( $attr->count ) == 0 && !$taxonomy_term[0]->numeric ) ? 'disabled' : "null" ?>">
                                <?php echo ( esc_attr( $taxonomy_term_key ) == "price" ) ? stm_listing_price_view( $attr->name ) : esc_attr( $attr->name ); ?>
                            </option>
                        <?php endforeach; ?>
                    </select>
                </div>
            </div>
        <?php endif; ?>
    <?php endforeach; ?>
    <div class="col-md-3 col-sm-6">
        <div class="row">
            <div class="col-md-8 col-sm-12">
                <button type="submit" class="button icon-button">
                   <i class="stm-icon-search"></i><?php esc_html_e( 'Search', 'motors' ); ?>
               </button>
            </div>
            <div class="col-md-4 hidden-sm hidden-xs">
                <a href="" class="reset-all reset-styled"
                   title="<?php esc_html_e( 'Reset search fields', 'motors' ); ?>">
                    <i class="stm-icon-reset"></i>
                </a>
            </div>
        </div>
    </div>
</form>

标签: phpwordpressformsfiltertabs

解决方案


如果您希望参数显示在 URL 中,那么您需要使用 method GET,而不是POST.

并且因为您的表单操作 URL 已经包含 GET 参数,所以在提交带有查询字符串参数和隐藏参数消失的 GET 表单下解释的内容也需要考虑 - 当提交表单时,这些会被丢弃,所以参数需要改为通过隐藏字段提供:

<input type="hidden" name="page_id" value="16410">

推荐阅读