微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在另一个页面中重复使用相同的 mixitup 过滤器

如何解决在另一个页面中重复使用相同的 mixitup 过滤器

我对 mixitup 库有点陌生。基本上我正在开发一个 wordpress 站点并使用 mixitup 来过滤网格。我也在使用 ACF。有 2 个页面几乎相同(即它们使用相同的 ACF 面板结构),它们只是显示不同的帖子类型,我想对两个页面使用相同的过滤器。

HTML 代码

<?PHP if( $the_query->have_posts() ): ?>
    <div class="grid mix">
        <?PHP while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

            <?PHP $outlet_types = get_the_terms( $products->ID,'outlet_type' ); ?>
            <?PHP $grating_materials = get_the_terms( $products->ID,'grating_material' ); ?>

            <div class="col-sm-6 col-md-3 mix-single all 
                        <?PHP foreach( $outlet_types as $outlet_type ) { echo $outlet_type->slug; } ?> 
                        <?PHP foreach( $grating_materials as $grating_material ) { echo $grating_material->slug; } ?>">

                <!-- Some content inside the card here -->

            </div>
        <?PHP endwhile; ?>
    </div>
<?PHP endif; wp_reset_query(); ?>

JS代码

    var containerEl = document.querySelector('.mix');
    var outletSelect = $('#outlet-filters');
    var gratingSelect = $('#grating-filters');

    if (containerEl) {
        var mixer = mixitup(containerEl,{
            selectors: {
                target: '.mix-single',},animation: {
                duration: 300
            },controls: {
                live: true
            },load: {
                sort: 'published-date:asc'
            },callbacks: {
                onMixEnd: function(state) {
                    if (state.hasFailed) {
                        $('#no-results').css({'display':'block'});
                    } else {
                        $('#no-results').css({'display':'none'});
                    }
                }
            }
        });

        $('#outlet-filters,#grating-filters').on('change',function() {
            var filterString = productTypeSelect.val() + outletSelect.val() + 
            mixer.filter(filterString);
        });
    }

过滤器只能在一页上工作,我似乎无法弄清楚原因。我可能会为 2 个页面上的 2 个网格创建两个具有不同 ID 的单独过滤器,但我想知道是否有更快的方法来实现这一点。

更多信息:我在不同的 PHP 脚本上为一个完全不同的页面(几乎与上面的页面相同)添加了另一个过滤器,但使用相同的 JS 脚本,它工作正常。我真的很感激一些解释。谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。