Setup guide · WordPress

Setting up Demfilz Fields and Filters

This plugin adds custom fields to pages, posts and products, and renders front-end filter forms so visitors can filter by those fields, tags, taxonomies and WooCommerce attributes. Here's how to install it, define fields, build your first filter and keep the attribute index fresh.

Updated 16 July 2026~7 minWordPress 6.2+ · PHP 7.4+ · WooCommerce optional
1

Install

Upload the plugin zip and activate it.

2

Define fields

Label, type, options, post types.

3

Fill in values

On each page, post or product.

4

Place the filter

Build the shortcode, paste it anywhere.

What this plugin does

Demfilz Fields and Filters does two jobs that belong together. First, it lets you define custom fields - text, text area, number, select, radio buttons, checkbox, date or URL - and attach them to pages, posts, products or any public post type. Second, it renders front-end filter forms with a paginated results grid, so visitors can filter your content by those fields, by tags, categories or any taxonomy, by WooCommerce global attributes and by custom per-product attributes.

The free plugin is complete on its own. A separate Pro add-on ($19.95/year via Stripe) makes filtering instant (AJAX, no page reloads), shows live result counts on every option, and adds colour swatch and star rating field types plus pill-style controls.

You'll need: WordPress 6.2+ and PHP 7.4+. WooCommerce is optional - product support and attribute filters activate automatically when it's present.

Step 1 - Install & activate

  • Install it from the WordPress.org plugin directory - go to Plugins → Add New and search "Demfilz Fields and Filters" (or download the .zip there and upload it via Plugins → Add New → Upload Plugin).
  • Click Install Now, then Activate.
  • A new Fields & Filters item appears in the admin menu - everything below is under it.

Step 2 - Define your fields

Go to Fields & Filters → Fields and add a field:

  • Label - what editors and visitors see (e.g. Colour, Material, Score). The key is generated from the label and cannot change later.
  • Type - text, text area, number, select, radio buttons, checkbox (yes/no), date or URL.
  • Options - for select and radio types, one option per line (e.g. Red, Blue, Green).
  • Post types - tick where the field applies: posts, pages, products or any public post type.
  • Filterable - tick to offer the field in front-end filters. Untick for fields that are editorial-only.

Each type filters the natural way: selects and radios become dropdowns (or multi-select checklists), numbers become min/max ranges, dates become from/to pickers, checkboxes become a yes toggle, and text fields match keywords.

Step 3 - Fill in values

  • Edit any page, post or product that the field applies to.
  • Find the Custom fields (Fields and Filters) box and set the values.
  • Update the post - values save with the same permissions as the post itself.

Step 4 - Build and place the filter

Go to Fields & Filters → Filters. Tick what you want in the builder - content type, fields, taxonomies, attributes, extras - and copy the generated shortcode into any page. Examples:

  • [dfaf_filters post_type="product" taxonomies="product_cat,pa_colour" multi="pa_colour"] - products filtered by category and colour (multi-select).
  • [dfaf_filters post_type="post" fields="region,rating" taxonomies="post_tag"] - posts filtered by two custom fields and tags.
  • [dfaf_filters post_type="product" form_only="1" action="/shop/"] - just the form, targeting your shop archive (enable Archive filtering in Settings).

Useful parameters:

ParameterWhat it does
post_typeWhat to list: post, page, product or any public post type. Default post.
fieldsComma-separated field keys. Default: all filterable fields for the post type.
taxonomiesComma-separated taxonomies: post_tag, category, product_cat, or global attributes like pa_colour.
attributesComma-separated custom (per-product) attribute names, e.g. material.
multiField keys or taxonomies to render as multi-select checkbox lists.
search / sortShow the keyword box / sort dropdown (1 or 0, default 1).
per_page / columnsResults per page and grid columns (1-4).
form_only / results_only / actionSplit form and results, or point the form at another page or archive.

Step 5 - WooCommerce attributes

Global attributes (created under Products → Attributes, taxonomies named pa_*) work through the taxonomies parameter - nothing to set up.

Custom per-product attributes (typed directly on a product's Attributes tab) are indexed into fast, queryable meta automatically every time a product is saved. For products that existed before the plugin was installed, go to Fields & Filters → Settings and click Rebuild attribute index once. Values separated with a pipe (Oak | Walnut) become individual filter options.

Settings

  • Results per page - the default page size (shortcodes can override with per_page).
  • Archive filtering - apply active filters on blog, category, tag and shop archive pages, so a form_only form can drive your shop page.
  • Uninstall - optionally delete stored field values (post meta) when the plugin is uninstalled. Definitions and settings are always cleaned up.

Pro: instant filtering, counts, swatches & ratings

Fields and Filters Pro ($19.95/year) is a separate add-on plugin that installs alongside the free one:

  • Instant AJAX filtering - results update as visitors change filters, no page reload, with shareable URLs.
  • Live result counts on every filter option, cached for speed.
  • Colour swatch field type - options defined as "Name|#hex" render as visual swatches.
  • Star rating field type with "3 stars & up" style filtering.
  • Pill-style controls for checkbox lists.

After subscribing you receive a licence key by email. Install the Pro add-on, then enter the key under Fields & Filters → Licence / Pro. Pro settings (AJAX, counts, pills) live on the same screen.

Setup FAQs

The filter shows no options for my field

Check three things: the field is marked Filterable, it applies to the post type you're listing, and (for select/radio types) it has options defined. Fields with no possible values render nothing rather than an empty control.

My custom product attribute isn't offered as a filter

Custom attributes are discovered when products are saved. Run Rebuild attribute index in Settings once and it will appear in the builder's attribute list. Global (pa_*) attributes don't need indexing - use the taxonomies parameter instead.

Can I put the form in a sidebar and results on another page?

Yes - place [dfaf_filters form_only="1" action="/results-page/"] where the form goes and [dfaf_filters results_only="1"] on the results page (same post_type on both). For shop archives, enable Archive filtering in Settings and point the action at your shop URL.

Will it slow my site down?

No. Values are ordinary post meta queried with standard meta and taxonomy queries, and custom product attributes are pre-indexed on save specifically so nothing parses serialized data at filter time. Pro's live counts are cached and query-budgeted.

What happens to my data if I uninstall?

The plugin removes its own options. Field values stored on your posts are kept unless you ticked "delete stored field values on uninstall" in Settings first.

Want filters tailored to your catalogue?

We build WordPress and WooCommerce plugins to order - filtering, fields, feeds, integrations and more. Tell us what you need and we'll come back with a plan and a fixed quote.