【问题标题】:FacetWP: Show labels only if facet has optionsFacetWP:仅当 facet 有选项时才显示标签
【发布时间】:2020-03-03 15:35:50
【问题描述】:

我只想在构面有任何选项时才显示标签。因此我尝试了以下代码:

<script>
(function($) {
    $(document).on('facetwp-loaded', function() {
        $('.facetwp-facet').each(function() {
            var facet_name = $(this).attr('data-name');
            var facet_label = FWP.settings.labels[facet_name];

            if ($('.facet-label[data-for="' + facet_name + '"]').length < 1 && $(this).children()
                .length > 0) {
                $(this).before('<p class="h5 facet-label" data-for="' + facet_name + '">' + facet_label + '</p>');
            }
        });
    });
})(jQuery);
</script>

它有效,但前提是我使用活动过滤器重新加载页面。 如果我更改过滤器,标签会保留。

是否有任何选项可以在点击后询问是否是新过滤器?

【问题讨论】:

    标签: javascript jquery wordpress woocommerce facetwp


    【解决方案1】:

    插件作者给了我一个解决方案的提示:

    <script>
        (function($) {
            $(document).on('facetwp-loaded', function() {
                $('.facetwp-facet').each(function() {
                    var facet_name = $(this).attr('data-name');
                    var facet_label = FWP.settings.labels[facet_name];
                    if ( 'undefined' !== typeof FWP.settings.num_choices[facet_name] && FWP.settings.num_choices[facet_name] > 0 && $('.facet-label[data-for="' + facet_name + '"]').length < 1 ) {
                        $(this).before('<h3 class="facet-label" data-for="' + facet_name + '">' + facet_label + '</h3>');
                    } else if ( 'undefined' !== typeof FWP.settings.num_choices[facet_name] && !FWP.settings.num_choices[facet_name] > 0 ) {
                        $('.facet-label[data-for="' + facet_name + '"]').remove();
                    } 
                });
            });
        })(jQuery);
        </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 1970-01-01
      • 2019-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多