Custom filters are an important element for WordPress sites. They provide improved user experience through easy sorting and finding of content, enhanced content discoverability, and dynamic content display.

It is possible to add custom filters in WordPress using code. However, this brings potential problems and limitations, such as the difficulty of implementing custom filters without deep coding knowledge, as well as the challenges of using complex PHP or MySQL queries that can be intimidating for the average user. 

Because of this, it’s preferable to use a dedicated plugin, like FooGallery, for adding custom filters in WordPress. With pre-built options for setting up complete filtering configurations, such plugins make it easy for you to get the functionality you need!

Filtering applied to a gallery in WordPress

In this article, we’ll look at both methods, showing you how best to add custom filters to your WordPress website.

Applications of Custom Filters in WordPress 

Below, we answer the following questions: Why would you want to add custom filters, and where would you be doing it?

Why Would You Want to Add Custom Filters to Your WordPress Website?

  • Enhanced content discovery and improved user experience: Custom filters play an important role in helping site visitors discover relevant content quickly, leading to a smoother, more efficient browsing experience. Filters can also be used to dynamically alter the content display, such as changing portfolio showcases or product galleries based on user interaction.
  • Better content organization: It’s possible to use custom filters to assist in organizing content by categories or tags. These filters make it possible to manage and present content systematically, which is especially crucial for large WordPress sites.
  • SEO benefits: Well-organized content and intuitive navigation improve user engagement and dwell time. This sends positive signals to search engines, potentially boosting rankings and driving more organic traffic to your site. 

Where Would You Add Custom Filters in WordPress?

  • Application in ecommerce: Filters are a great addition for WooCommerce sites that can benefit from adding various custom filters to product pages, such as price, color, size, and so on, so customers can sort products by various attributes.
Filtering in a product gallery for ecommerce
  • Portfolio and galleries: In professional portfolios and image galleries, custom filters can be used to enable photographers, designers, and artists to categorize their work, making it easier for visitors to find what they’re looking for. 
  • Utility in blogs and news sites: Custom filters can significantly aid content-heavy sites such as blogs and news portals by allowing readers to filter articles by topic, date, or author. 

How to Add Custom Filters in WordPress With Code 

There are a few common methods that can be used to manually add custom filters in WordPress. We take a look at some of these examples below.

Understanding Hooks and Their Importance

In WordPress, a “hook” refers to a mechanism that allows developers to insert custom code into various points of the WordPress core, themes, and plugins, without directly modifying the original files. There are two types of hooks:

  • Actions: These are points where you can insert your own functionality or code. When an action hook is triggered, it performs any functions that have been attached to that hook.
  • Filters: Similar to actions, these are used more to modify data before it is displayed or processed. Filters accept a value, modify it, and then return the modified value.

The purpose of hooks is to allow developers to customize WordPress themes and plugins without having to directly edit any core files. This makes it easier to maintain and update websites, as changes can be made through the custom functions that have been added with the WordPress hooks.

Using the add_filter() Function to Create Custom Filters

In WordPress, you can use the add_filter() function, which plays a pivotal role in creating custom filters. It is used to hook a specified PHP function to a specific filter action. WordPress runs these filters when it processes the data that the filter modifies.

The basic syntax of add_filter() is:

 add_filter( 'filter_name', 'your_function_name', priority, accepted_args )Code language: JavaScript (javascript)

These terms can be described as follows:

  • filter_name: The name of the filter to which the function is hooked.
  • your_function_name: The function that is called when the filter is applied.
  • priority: (Optional) Used to specify the order in which the functions associated with a particular filter are executed. Lower numbers correspond with earlier execution.
  • accepted_args: (Optional) The number of arguments the hooked function accepts. The default is 1.

How to Retrieve Tags and Categories Using WP_Query

It is possible to retrieve tags or categories from the WordPress database using WP_Query or other relevant WordPress functions. 

WP_Query is a class that WordPress uses to query posts. You can use it to create custom queries, modify existing queries, and more. It’s powerful and allows detailed customizations of the posts that WordPress returns. Using add_filter() with WP_Query lets you tweak the WordPress query process without altering core files, keeping your changes safe through updates. 

To modify the posts that appear on your search page. You can use add_filter() to alter the WP_Query object that WordPress uses to query posts:

  • Step 1 – Define Your Filter Function: You need a function that WordPress will call during the query process. For example, if you want to exclude posts from category ID 10 in search results you can use the following code:
function exclude_category( $query ) {
    if ( $query->is_search && !is_admin() ) {
      $query->set( 'cat', '-10' ); // Exclude category 10
    }
    return $query;
}Code language: PHP (php)
  • Step 2 – Add Filter Hook: Next, you hook this function to a filter. In this case, you use the pre_get_posts action to modify the query before it gets posts:
add_filter( 'pre_get_posts', 'exclude_category' );Code language: JavaScript (javascript)
  • Step 3 – Add This Code to Your Theme: You can add the code to your theme’s functions.php file. This is a special file that WordPress recognizes for custom code:
    Navigate to Appearance > Theme Editor in WordPress admin.
    Select your active theme.
    Locate functions.php and insert the code, usually at the end.

Limitations and Challenges of Customizing WordPress Filters With Code

There are numerous complexities involved in manual coding, including the potential risks associated with code conflicts and theme or plugin updates:

  • Technical skills requirement: A solid understanding of HTML, PHP, WordPress core functions, and overall WordPress architecture is needed. Otherwise, the range of custom filters you will be able to create will be very limited.
  • Maintenance and updates: There is also a need for ongoing maintenance, as well as continuous updates when filters are coded manually. If not, you could face performance issues due to heavy database queries when filters are not optimized.
  • Complexity and time consumption: It can be difficult to maintain clean and optimized code for large-scale WordPress sites. This can add to the complexity when creating custom filters, not to mention the time required to do this.
  • Compatibility issues: Given the complexities involved in manual coding, you are potentially putting your website at risk of code conflicts due to theme or plugin updates.

Why a Plugin is a Better Solution for Custom WordPress Filters 

Considering the challenges you’ll encounter with manual coding, it would be preferable to use WordPress plugin to add filters. Here’s why: 

  • Ease of use: A plugin allows you to create custom filters without touching code. FooGallery, for example, has pre-coded functionality, so it is pre-wired to allow users to create custom filters for specific use cases.
  • Time efficiency: This results in a significant amount of time saved by using a plugin with a point-and-click set-up, compared to manual coding, which is error-prone and time-consuming.
  • User experience: There are also benefits for the end-user experience, like faster load times with lazy loading, animated transitions, and improved navigation with filter buttons.
  • Consistency and compatibility: In general, plugins provide for more consistent performance across different themes and plugins compared to custom code that might behave inconsistently.
  • Updates and security: Consider the automatic updates and security benefits of using an actively maintained plugin, which helps keep the site secure and the plugin functioning with the latest WordPress versions.

Given the numerous benefits of using a plugin, it makes sense to use this method when adding custom filters to your WordPress site. Steve Usher, lead developer at FooPlugins, explains: “For non-technical users, the prospect of coding custom filters can be daunting, not to mention the potential costs associated with hiring a WordPress developer to implement such functionalities. Plugins offer a cost-effective and accessible solution, providing pre-coded functionality that streamlines the process and eliminates the need for intricate coding knowledge.”

Creating Galleries With Custom Filtering With FooGallery 

One of the ways you can use custom filtering is in WordPress galleries. There are various advantages to doing this, especially when using FooGallery PRO Expert for this purpose. This gallery plugin has the ability to enhance user experience by allowing visitors to control what they see, catering to individual preferences, and improving site navigation. Plus it is easy for WordPress website owners, business owners, and content managers to implement these filters.

One of the main drawcards of FooGallery PRO Expert is the customizability of filters, and how they can be used to enhance the organization and findability of media content. This stems from features like: 

  • Tag filtering function: FooGallery allows website owners to tag their posts in the backend so their visitors can filter them by those tags in the frontend.
  • Multi-level filtering function: This function allows you to create multi-level filtering for galleries. For example, the first level could be general themes like “Animals” or “Landscapes”. The second level for the “Animals” filter could be “Cats,” “Dogs,” “Birds,” and so on. This functionality becomes especially useful as the galleries grow, and it gets harder to categorize them.

We take a look at how to implement these filters in the short tutorial below. 

How to Set Custom Tag Filtering With FooGallery PRO Expert 

To create your filters, you first need to set up custom tags or categories (you can use either to create your filters). This is simple with FooGallery PRO Expert, which includes the tag and category field for images by default. There are several ways you can then add your tags:

In the image metadata: In the WordPress media library, select the image to image to which you want to add tags and scroll down to the tags / categories field. Add the tags you wish to use. You can also do this when you upload an image to your library. However, this can be a lengthy, manual process. 

Add tags and categories in the media library

Using the Bulk Taxonomy Manager: This tool (included in FooGallery PRO Expert) provides a quicker way to add tags to multiple images in your gallery at once. You can select all of the relevant images and select the tags you wish to apply. You can also add new tags in the manager. 

bulk tag manager

With the Advanced Attachment Modal: The attachment modal in FooGallery provides an easy way to access your image metadata without having to leave your gallery settings page. Here, you can add or edit the tags (and any other metadata) for your individual gallery images. While the custom Taxonomy Manager is better for bulk tagging, this is a useful way to make small changes.

advanced attachment tags and categories

Once this is done, you can set up filtering for your gallery. Navigate to the Filtering tab in your gallery settings and enable Simple or Advanced Filtering. (There is multi-level filtering as well, but we’ll discuss this in the next section.) 

Simple filtering will allow you to select tags or categories as your filter source, as well as a light or dark theme for the filter buttons, and the position of your filters (above or below your gallery, or both). 

Advanced filtering will give you these same options but with more advanced customizability. For example, you can display the number of images for each tag in the filter button. Or you can change the size or opacity of the buttons depending on how many images fall under that tag. Additionally, you can set a limit on which filters show – if a particular tag has fewer images than the set number, it will not show as a filter. Finally, you can allow users to select multiple filters, either showing any image that falls under any of the tags selected or showing images that have all of the selected tags. 

Gallery Filtering advanced settings

How to Set Multi-level Filtering With FooGallery PRO Expert

Multi-level filtering is a game changer when it comes to gallery navigation, allowing your users to fine-tune the images they see. With this feature, you can set numerous levels of filters, each level filtering down the selection further. For extensive galleries, this can improve both user experience and page speed. 

To set this up in FooGallery PRO Expert, select Multi-level in the Filtering tab of your gallery settings. Again, you can choose the filter source, theme, and position, along with the selection mode. You’ll then be directed to select your levels. 

Selecting this will open a panel where you will be able to choose the tags that you want to display at each level. Using the “Animal” example from before, your first level could be “Wild” and “Domestic”. Your next level could include “Cats”’ “Dogs”, “Horses”, “Lions”, “Monkeys” and so on. You could have subsequent levels narrowing the selection down to breeds, habitats, colors, or food preferences. The options are many and varied. 

multi-level filtering builder

Once you’ve set your filters, you can return to the gallery settings to preview them. To edit or change any of the filters you can click on Select Filters in the settings and make the necessary changes. 

Here’s a look at how this works on the frontend:

Enhance Your WordPress Galleries Today With FooGallery Filters

Utilizing FooGallery for custom filters includes a number of key benefits, including ease of use and advanced features tailored to various user needs.

Unlike complex coding requirements and limited default options available in WordPress, FooGallery provides a simpler solution. In FooGallery, custom filters are easy to set up, you don’t need to be (or hire) a developer and you don’t need to worry about plugin, theme, or core updates playing havoc with your code. The result is an easier, faster way to add filters, that can then boost performance and improve navigation and user experience. 

If you want a hassle-free way to add custom filters to your WordPress site, try FooGallery PRO Expert for yourself.