Dynamic Post Filter – Shortcode Parameters

This is a feature of the premium plan. Tag Groups Premium

Note: This shortcode is also available as Gutenberg block. You can configure the block without using any code or parameters. Read more about the block options.

Note: This shortcode or block can only be used once on a page (including widgets), and it cannot be used together with the shortcode or block of the Dynamic Post Filter With Toggles.

If you don’t know what is a shortcode and how to use it, you first may want to read this article.

Shortcode

[tag_groups_dpf]

You can optionally display posts separated from the menu. Simply use in this shortcode separate=1 and add a second shortcode:

[tag_groups_dpf_body]

Example

[tag_groups_dpf include=1,2,3,5 open=1,2,3,5 caching_time=60 persistent_filter=60 pager=1 display_amount=1 transition=fade]

Data Types

  • string: A text. For identifiers that won’t be visible to visitors you often have to replace spaces with _ or -. If the string contains spaces, you need to wrap it in quotes.
  • integer: A number without decimal places.
  • 0 or 1: 0 turns the feature off and 1 on.

Gutenberg Block

If you are using Gutenberg, most of the parameters below will also be available in the corresponding block. You can always convert a block to a shortcode while preserving your settings.

Parameters

Tags and Terms

taxonomy

Restrict the tags only to these taxonomies. Available are only taxonomies that have been activated in the Settings.

accepted valuesdefaultexample
comma-separated list of taxonomy namesTaxonomies selected in the settings under “Basics”.taxonomy=post_tag,product_tag

operator

The operator determines how selected tags and groups should be logically connected when searching for matching posts. Possible values are “IN”/”OR” (at least one tag is among the post tags), “AND” (all tags are among the post tags of the same group), “IN AND” (at least one tag from each group is among the post tags), “EXACT” (the selection of tags must be identical to the post tags of that same group, not more and not less; this option is not available for the option groups_only=1), or a per-group definition:

operator="all:OPERATOR|group ID:OPERATOR|group ID:OPERATOR| ..."

Remarks about the per-group notation:

  • You need at least one entry with the keyword “all”. The corresponding operator determines how the groups are connected.
  • OPERATOR can be AND, OR or EXACT (upper or lower case). IN is an alias of OR.
  • The order of groups doesn’t matter.
  • If you use this format of the operator, all groups that you don’t specify will fall back to the operator OR.

Note for the operator “exact”: If you upgrade from a version before 1.39.0, go to the settings, Troubleshooting and run the maintenance.

accepted valuesdefaultexample
stringIN/ORoperator="IN AND"
operator="all:and|1:or|5:exact|3:and"

Groups

include

Tag groups that will be selectable by visitors. In the short code you use the IDs, which you find in the left column in the list of groups. Empty or not used means that all tag groups will be used.

accepted valuesdefaultexample
comma-separated list of integersempty (=all)include=1,5,9

open

Tag groups that are initially open. If you use include, then all selected groups must also be included. Empty or not used means that all tag groups will be open.

accepted valuesdefaultexample
comma-separated list of integersempty (=all)open=1,9

hide_close_buttons

Disables the possibility to remove the input fields of groups. You can use that option together with the include and open parameters if you want to show a fixed set of groups that cannot be altered by visitors.

accepted valuesdefaultexample
integer0hide_close_buttons=1

sumoselect

Changes the default select menu to a more stylish one.

accepted valuesdefaultexample
integer1sumoselect=0

groups_only

Skip the tag selection and display all products that match the selected groups.

accepted valuesdefaultexample
integer0groups_only=1

Posts

caching_time

Time in minutes that results remain in the cache.

accepted valuesdefaultexample
integer10caching_time=10

posts_per_page

How many posts appear under the filter. Use -1 to show all.

Please note that high numbers of posts may impact the performance.

Tip: If you use the parameter “display_amount” you can reduce the additional database request by using posts_per_page=-1 instead of a high number of posts.

accepted valuesdefaultexample
integer5posts_per_page=10

pager

If the pager is enabled then visitors can load the next or previous page.

accepted valuesdefaultexample
integer0pager=1

orderby

Which field to use for sorting.

optionnotes
author 
date 
modified 
randrandom order; recommended not to use with a pager/pagination
title 
comment_count 
accepted valuesdefaultexample
stringdateorderby=title

order

Whether to sort the posts in ascending or descending order. Ascending order also means from oldest to newest.

accepted valuesdefaultexample
stringDESCorder=asc

display_amount

Whether to display a line that shows the total amount of posts.

accepted valuesdefaultexample
0 or 10display_amount=1

template

HTML code that contains some placeholders. If you use only one template on your entire website, it is recommended to leave this parameter empty and edit the default template in the Front End settings.

In order to prevent that WordPress parses the HTML and adds malformed <p></p> tags, it is recommended to encode it before using it. Simply convert your HTML using this online tool.

Possible placeholders are: {post_id}, {post_title}, {permalink}, {post_excerpt} (automatically generated), {post_excerpt_html} (preserves most common html tags), {post_date}, {post_author}, {image_src} or {image_src|image size}, {image_alt}, {post_category}, {post_tags}, {custom_field:<name>}1.

image_src also accepts percentages or “auto” as values. If you want to use pixels, you enter the number without any “px”

accepted valuesdefaultexample
stringsee below
template='JTNDZGl2JTIwY2xhc3MlM0QlMjJ0YWctZ3JvdXBzLWRlZmF1bHQtcG9zdC10ZW1wbGF0ZSUyMiUzRSUwQSUyMCUzQ2hlYWRlciUyMGNsYXNzJTNEJTIydGctZW50cnktaGVhZGVyJTIyJTNFJTNDYSUyMGhyZWYlM0QlMjIlN0JwZXJtYWxpbmslN0QlMjIlMjByZWwlM0QlMjJib29rbWFyayUyMiUzRSUzQ2ltZyUyMHNyYyUzRCUyMiU3QmltYWdlX3NyYyU3QzEwMHgxMDAlN0QlMjIlMjBhbHQlM0QlMjIlN0JpbWFnZV9hbHQlN0QlMjIlMjBjbGFzcyUzRCUyMnRnLWVudHJ5LWltYWdlJTIyJTIwJTJGJTNFJTNDJTJGYSUzRSUwQSUyMCUyMCUzQ2gzJTIwY2xhc3MlM0QlMjJ0Zy1lbnRyeS10aXRsZSUyMiUzRSUzQ2ElMjBocmVmJTNEJTIyJTdCcGVybWFsaW5rJTdEJTIyJTIwcmVsJTNEJTIyYm9va21hcmslMjIlM0UlN0Jwb3N0X3RpdGxlJTdEJTNDJTJGYSUzRSUzQyUyRmgzJTNFJTBBJTIwJTIwJTNDJTNGcGhwJTIwX2UoJ1Bvc3RlZCUyMG9uJTIwJTdCcG9zdF9kYXRlJTdEJTIwYnklMjAlN0Jwb3N0X2F1dGhvciU3RC4nJTJDJTIwJ3RhZ19ncm91cHNfcHJlbWl1bScpJTIwJTNGJTNFJTBBJTIwJTIwJTNDcCUzRSU3QnBvc3RfY2F0ZWdvcnklN0QlM0MlMkZwJTNFJTBBJTIwJTNDJTJGaGVhZGVyJTNFJTBBJTIwJTNDZGl2JTIwY2xhc3MlM0QlMjJ0Zy1lbnRyeS1jb250ZW50JTIyJTNFJTBBJTIwJTIwJTNDcCUzRSU3QnBvc3RfZXhjZXJwdCU3RCUzQyUyRnAlM0UlMEElMjAlM0MlMkZkaXYlM0UlMEElM0MlMkZkaXYlM0U='

Default template:

<header class="tg-entry-header">
<a href="{permalink}" rel="bookmark"><img src="{image_src|100x100}" alt="{image_alt}" class="tg-entry-image" /></a>
<h3 class="tg-entry-title"><a href="{permalink}" rel="bookmark">{post_title}</a></h3>
Posted on {post_date} by {post_author}.
<p>{post_category}</p></header>
<div class="tg-entry-content"><p>{post_excerpt}</p></div>

Image sizes

The following formats are possible:

  • keywords like “thumbnail”, “medium”, “large” or any custom image size2. This method provides the best performance when loading an image. You can change the sizes in the general Media settings of your WordPress site and then use a plugin such as Regenerate Thumbnails to generate the new sizes.
  • width and height, separated by “x”. On both sides you can use numbers (sizes in pixel), percentages or the keyword “auto”. The image loaded by the browser may actually be larger and scaled down.

Examples for the image tag:

<img src=”{image_src|medium}” alt=”{image_alt}” class=”tg-entry-image” />
<img src=”{image_src|100×150}” alt=”{image_alt}” class=”tg-entry-image” />
<img src=”{image_src|100%×auto}” alt=”{image_alt}” class=”tg-entry-image” />

transition

Transition between loading the list of posts.

accepted valuesdefaultexample
stringnonetransition=fade

static_taxonomy

Optionally filter also by terms of an additional taxonomy (not necessarily one of the taxonomies used for tag groups). Used together with static_terms.

accepted valuesdefaultexample
stringnonestatic_taxonomy=category

static_terms

Optionally filter also by terms of an additional taxonomy (not necessarily one of the taxonomies used for tag groups). Used together with static_taxonomy.

accepted valuesdefaultexample
comma-separated list of integersnonestatic_terms=42,255

Other

persistent_filter

The Dynamic Post Filter can optionally remember the selection of groups and tags so that your visitors who clicked on an article and then return to this page will see the same list of articles again. After loading, the page will scroll to the group selection menu. (Otherwise the browser might go to a random post, depending on the loading speed.)

The data is saved in a browser cookie. If you use several Dynamic Post Filters on your site, you should give each a different div_id so that each will have its own cookie.

The value is the time in minutes. Zero means off.

accepted valuesdefaultexample
integer0 (off) persistent_filter=30

Labels and Messages

placeholder

Placeholder message in the tag input field. It disappears as soon as you enter tags.

accepted valuesdefaultexample
string“Please enter your tags here.”placeholder=""

posts_placeholder

Placeholder message for the list of posts.

accepted valuesdefaultexample
string“Please select a group.”posts_placeholder=""

default_option_label

What the pull-down menu should show if no group is selected.

accepted valuesdefaultexample
string“Filter by group”default_option_label=""

groups_header

Header above the list of selected groups.

accepted valuesdefaultexample
string“Selected groups:”groups_header=""

message_only_existing

Error message if user tries to enter a tag that doesn’t exist.

accepted valuesdefaultexample
string0message_only_existing=""

message_same_group

Error message if user tries to enter a tag from another group.

accepted valuesdefaultexample
string0message_same_group=""

message_nothing_found

Message to show if no posts were found.

accepted valuesdefaultexample
string“Nothing found.”message_nothing_found=""

message_load_more

Label of the link to load more posts, if the pager is active.

accepted valuesdefaultexample
string“Load more”message_load_more=""

message_go_back

Label of the link to go back, if the pager is active.

accepted valuesdefaultexample
string“Go back”message_go_back=""

message_amount_singular

Message if one post was found, if display_amount is active.

accepted valuesdefaultexample
string“1 post found.”message_amount_singular="One recipe found."

message_amount_plural

Message if many posts were found, if display_amount is active. May contain the placeholder {count}

accepted valuesdefaultexample
string“{count} posts found.”message_amount_plural="We found {count} recipes."

Advanced Styling

You can set here classes to be referred to in CSS. You need some knowledge of CSS to use these options.

div_class

Define a class for the <div>.

accepted valuesdefaultexample
stringemptydiv_class="change-pointer"

div_id

Define an ID for the enclosing <div>.

accepted valuesdefaultexample
stringdiv_id="my_id"

Footnotes

  1. A value from the post meta <name>. See also tag_groups_template_custom_field[]
  2. Custom sizes may be registered by your theme or another plugin.[]