Used to test whether the current faceted menu has an active filter.

shopp('collection', 'facet-filtered', 'options')

@param string $object the object or object.tag combination, if object.tag is used, the tag parameter can be omitted
@param string $tag the tag, can be hyphenated or not. Prefix with 'get' as shorthand for the return=true option
@param mixed $options associative array, or url-style name=value pairs separated by ampersands (&). Each pair is passed to the theme api tag as an option.
@returns boolean true if the current facet menu has an applied filter, else false

Alternative Forms

shopp('collection.facet-filtered', 'options');


Used to test whether the current faceted menu has an active filter.

This function can be used within the shopp('collection','facet-menus') loop to determine which facet menus are already active.

Universal Options

All Theme API calls have these options.

  • return: when set to true, 1, or on, this option forces the tag to return the value instead of displaying/echoing the value to the page. Alternatively, prefix the tag parameter with get to get the same effect. All theme api tags that return a boolean value will return by default.
  • echo: when set to false, 0, or off, this option forces the tag to display the value to the page. This is the default for all non-boolean tags.
  • is: when set to true, 1, or on, this option will evaluate the return of the theme api call as a boolean true or false value. See how values are converted to boolean.




if (shopp('collection','facet-filtered')) {}

Check for active filters in the facet menus loop

while (shopp('collection.facet-menus')) {
    if ( shopp('collection.facet-filtered') ) continue; // skip facets that are already filtered

Display toggle filter links for only those facets that are not already active

if ( is_a(ShoppCollection(),'ProductCategory') && shopp('collection.has-faceted-menu') ) : ?>

<ul class="faceted-menu">
        // Loop through faceted menus
        while(shopp('collection.facet-menus')) :

        // Skip active filters and menus with no options
        if ( shopp('collection.facet-filtered') ) continue;
        if ( ! shopp('collection.facet-menu-has-options')) continue;
        // current facet filter name
        shopp('collection.facet-name'); ?></h4>
        <ul class="facet-option <?php
            // current facet filter slug
            shopp('collection.facet-slug'); ?>">
            // Loop through filter options for this faceted menu
            while(shopp('collection.facet-options')) : ?>
                    <a href="<?php
                        // toggle url for current filter option
                        esc_url(shopp('collection.facet-option-link')); ?>"><?php
                        // the full label of the facet filter option
                        shopp('collection.facet-option-label'); ?></a>&nbsp;
                    <span class="count"><?php
                    // the number of products sharing this facet
                    shopp('collection.facet-option-count'); ?></span>
            <?php endwhile; ?>
    <?php endwhile; ?>

<?php endif; ?>

See Also

You must be logged in to post a comment.

© Ingenesis Limited. Shopp™ is a registered trademark of Ingenesis Limited.