F4 Media Taxonomies


F4 Media Taxonomies provides the ability to filter the media library by categories, tags and/or custom taxonomies.
You can use the built-in taxonomies (category or post_tag) or any custom taxonomy.

If a taxonomy is enabled for attachments, you can assign as many of their terms to an attachment as you need.
You can assign them directly in the media library or in every media-selector overlay.
There is also a nifty bulk function in the media library, which allows you to assign a single term to multiple attachments at once.

Attachments can then be filtered by these terms. The filters are available in the media library and in every media-selector overlay.

Different than other similar plugins, F4 Media Taxonomies is 100% free!


See FAQ for a guide how to enable categories, tags and custom taxonomies.

Features overview

  • Use any taxonomy (built-in or custom)
  • Assign one or more terms to an attachment in media library/overlay
  • Bulk assign terms to multiple attachments at once in media library
  • Filter attachments by terms in media library/overlay
  • Easy to use
  • Lightweight and optimized
  • 100% free!


  • Filter by taxonomies in media library list
  • Filter by taxonomies in media library grid
  • Assign one or more taxonomies to an attachment
  • Hierarchical dropdown menu for taxonomies assignment
  • Filter by taxonomies in media insert overlay


  1. Upload the plugin files to the /wp-content/plugins/f4-media-taxonomies directory, or install the plugin through the WordPress plugins screen directly
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. See FAQ for a guide how to enable categories, tags and custom taxonomies
  4. All taxonomies that are assigned to the attachment post-type are automatically enabled


How to enable categories

The built-in taxonomy category can be enabled with this snippet. Just put it into your functions.php:

add_action('init', function() {
    register_taxonomy_for_object_type('category', 'attachment');

How to enable tags

The built-in taxonomy post_tag can be enabled with this snippet. Just put it into your functions.php:

add_action('init', function() {
    register_taxonomy_for_object_type('post_tag', 'attachment');

How to enable custom taxonomies

There are two ways to enable custom taxonomies for attachments:

New taxonomy:

If the taxonomy does not exist yet and you want to create a new one, you have to set the object_type in the register_taxonomy() function to attachment (see WordPress codex).

add_action('init', function() {

Existing taxonomy:

If the taxonomy is already registered, you can assign it with this snippet. Just put it into your functions.php and change media-category to your taxonomy:

add_action('init', function() {
    register_taxonomy_for_object_type('media-category', 'attachment');

The filters do not appear in the media overlay

For a better performance, we only include the scripts and files when they are needed. Some plugins can cause a problem with this functionality.
For this case we offer a hook, which allows you to enable the filter for special conditions. If this hook returns true, the filter is enabled for the current site.

add_filter('F4/MT/Core/has_filter', function() {
    return true;

Can I enable taxonomies directly in the backend?

No. We simply use the taxonomies that are registered in the code. Maybe in the future, but we want to keep this plugin as lightweight and simple as possible.

Is it really free?

Yes, absolutely!



17 aprila, 2023
Good clean solution to tagging uploaded files.
23 avgusta, 2022
It took me awhile to find this but so glad I did. I was just about to start coding it myself. It uses the *built-in* categories!!! No extra clutter, neat, simple, just waht I was looking for.
27 januarja, 2022
Genau das, was ich gesucht habe. Ist schon extrem zeitsparend, wenn man nicht jedes Bild einzeln editieren muss, nur um eine Kategorie oder ein Schlagwort zu ergänzen. Damit füllt man ganz einfach die Lücken in den Daten, ohne vor dem Zeitaufwand zu kapitulieren. Vielen Dank.
23 januarja, 2022
Just installed this plugin on one of my sites. Does everything I expected and the source code also looks clean and lean! 5 Stars, thank you Faktor 4!!
15 oktobra, 2021
A simple plugin that works nicely. It’s a good alternative (maybe better) to custom directories for media files in WP.
22 aprila, 2020
thank you for building that functionality in a small and efficient plugin, without all those "fancy" stuff that all the others in that field offer. great for developers 🙂
Read all 11 reviews

Contributors & Developers

“F4 Media Taxonomies” is open source software. The following people have contributed to this plugin.


“F4 Media Taxonomies” has been translated into 4 locales. Thank you to the translators for their contributions.

Translate “F4 Media Taxonomies” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Support WordPress 6.1


  • Update www.f4dev.ch links


  • Fix bulk action and taxonomy filter dropdowns
  • Improve the grid view performance


  • Terms are now lazy loaded with ajax in assignment select
  • Term assignment styles and scripts optimized
  • Term assignment sorting fixed
  • Update selectize to verison 0.13.5


  • Support WordPress 6.0


  • Correctly update post term count (thanks to @nonverbla for the hint)
  • Support WordPress 5.9


  • Support WordPress 5.8


  • Support WordPress 5.7


  • Fix taxonomy select for new jQuery version
  • Support WordPress 5.6


  • Fix behaviour after taxonomy selection


  • Support WordPress 5.5


  • Support WordPress 5.4


  • Fix bottom bulk action button in media list


  • Add CMB2 plugin support


  • WordPress 5.3 compatibility fixes
  • Optimized dropdown width in media modal


  • Update deprecated get_terms function


  • Few PHP and JS code optimisations


  • Fix customizer error
  • Fix missing dropdowns in media overlay


  • Fix filter error


  • Show only taxonomies with show_ui true


  • Version upgrade for correct repository infos


  • Initial stable release