Row Filtering

This is a Premium Extension for TablePress, please consider a donation. Thank you.

Thanks for your interest in the Row Filtering Extension!

This is a Premium Extension for TablePress. You may download and use it totally for free and without any restrictions.
At the same time, donations are highly appreciated and allow me to continue support and development of this free software.

Currency: EURChoose Euro USDChoose US Dollar

Please choose what the Extension is worth to you:
If you want, you can then donate via PayPal. Thank you!

free download 9 USD 16 USD 22 USDrecommended USD

Download now and go to PayPal

To donate later or to use other options like my Amazon wishlist or Bitcoins, please see the Donate page.

For sites that need to show many “small” tables with the same structure, e.g. entries from an inventory database, it can be beneficial to keep all rows in one “big” table, to simplify maintaining and editing the data. While the existing hide_rows and show_rows Shortcode parameters in TablePress allow showing only a subset of all table rows, this approach can be cumbersome, as the numbers of the table rows need to remain the same.

Instead, an approach similar to a database select query can help, so that only rows with a certain keyword in a column are shown, instead of the full table. That’s the use case for which the Row Filtering Extension can be used. It adds another parameter filter to the Shortcode that gets passed one or more search terms.

To use this, download, install, and activate the Extension like a regular WordPress plugin. Then, on the page where you want to show the table, insert the extended Shortcode

[table id=1 filter="filter-word" /]

and change the 123 to the desired table ID.

Examples and Logic operators

The standard case likely is filtering for a single word, i.e.

[table id=1 filter="filter-word" /]

Instead of showing all rows, the resulting table will only contain rows that have the search term filter-word (no matter if upper- or lower-case) in the content of at least one cell.

Using logic operators, || (for “or”) and && (for “and”), it is possible to search for multiple filter terms.

Thus, a Shortcode like

[table id=1 filter="word1||word2" /]

will show a table that only contains rows that contain word1 or word2 or both in the content of their cells. You can combine as many search terms with || as needed.

Similarly, a Shortcode like

[table id=1 filter="word1&&word2&&word3" /]

will show a table that only contains rows that contain all filter terms, word1 and word2 and word3 in this example, in the content of their cells. You can combine as many search terms with && as needed.

Important note: For technical reasons, mixing the logic operators is not possible though, i.e.

[table id=1 filter="word1||word2&&word3" /]

is not supported.

Additional Shortcode parameters

The filtering of rows can be further controlled using additional parameters in the Shortcode. The parameter filter_columns allows to define which columns of the table are search for the filter words (all columns by default). For example, the Shortcode

[table id=1 filter="filter-word" filter_columns="3,6-8" /]

would only take columns 3, 6, 7, and 8 into account for searching the filter term filter-word. If that word were to appear in any of the other columns of the table, those findings would not affect the filtering result.

By default, case sensitivity does not matter, so that both upper- and lower-case matches would be found. To only search for the exact spelling, the parameter filter_case_sensitive can be used. Thus, a Shortcode like

[table id=1 filter="filter-word" filter_case_sensitive=true /]

would turn on case sensitive filtering.

Furthermore, the default behavior of the Extension is to search for the filter terms anywhere in the cells. This could mean that e.g. the word car is found in a cell with the text shopping cart. Therefore, for some applications, it might make sense to only search the full cell content for matches. That can be turned on with the Shortcode parameter filter_full_cell_match, e.g. in a Shortcode like

[table id=1 filter="filter-word" filter_full_cell_match=true /]

In addition, it is possible to invert the “show matching rows” behavior into a “hide matching rows” behavior, which is possible using the Shortcode parameter filter_inverse. For example, a Shortcode like

[table id=1 filter="filter-word" filter_inverse=true /]

would show a table that only contains those rows from the table that do NOT contain the filter term filter-word.

Note that the described Shortcode parameters can be combined as well. As an example, the extended Shortcode

[table id=1 filter="word1&&word2" filter_columns="1-4" filter_case_sensitive=true filter_full_cell_match=true filter_inverse=true /]

would show a table that contains both word1 and word2 in the content of columns 1 through 4, with case-sensitive filtering and full-cell matching turned on.