We'll create fresh WordPress site with Taxonomy Thumbnail installed. You have 20 minutes to test the plugin after that site we'll be deleted.
This plugin is meant for developers, it allows to attach a thumbnail to taxonomy terms.
The thumbnail can be added on term creation or later on the term edition page.
The terms list has a column displaying the current thumbnail (so far, no specific action here).
The plugin uses the “new” media window (the one used since WP 3.5), not the old thickbox.
I made some extra efforts to enhance accessibility. I’m not an a11y expert but the UI is not only a “Add thumbnail” button. For instance, the new wp.a11y.speak()
is used when available. Please give me feedback if you think it can be improved.
Works with or without JavaScript.
If JavaScript is enabled, thumbnails are set via ajax in the term edition window, no need to update the term.
By default, the UI is displayed for all public taxonomies, but this can be filtered that way:
add_filter( 'sftth_taxonomies', 'my_taxonomies_with_thumbnail' );
function my_taxonomies_with_thumbnail( $taxonomies ) {
unset( $taxonomies['post_tag'] );
$taxonomies['my_custom_tax'] = 'my_custom_tax';
return $taxonomies;
}
Find them in inc/template-tags.php
.
Important note: for WP 4.4+, these functions use term_id
. For WP < 4.4, they use term_taxonomy_id
.
I tried to mimic the post thumbnail functions:
get_term_thumbnail_id( $term_id )
: Retrieve term thumbnail ID.has_term_thumbnail( $term_id )
: Check if a term has a thumbnail attached to it.the_term_thumbnail( $term_id, $size = 'post-thumbnail', $attr = '' )
: Display the term thumbnail.get_term_thumbnail( $term_id, $size = 'post-thumbnail', $attr = '' )
: Retrieve the term thumbnail.set_term_thumbnail( $term_id, $thumbnail_id )
: Set a term thumbnail.delete_term_thumbnail( $term_id )
: Detach a thumbnail from a term.From WordPress 4.4, the term metas API is used.
Below WordPress 4.4, there are two ways to store the thumbnail IDs:
term_taxonomy_id
=> thumbnail_id
integers). The option name can be customized by defining the constant SFTTH_OPTION_NAME
in wp-config.php
.Use get_terms()
with a specific parameter to retrieve only terms with a thumbnail:
$terms = get_terms( array(
'with_thumbnail' => true,
) );
From WordPress 4.4, you can also use a small helper to build your meta query:
$terms = get_terms( array(
'meta_query' => array(
'relation' => 'AND',
array(
// Any meta query.
),
sftth_meta_query(),
),
) );
Below WordPress 4.4, if you use the plugin Meta for Taxonomies, you should always cache thumbnails.
When using 'with_thumbnail' => false
you will retrieve all terms, even those without a thumbnail, but the thumbnails will be cached, saving calls to the database later:
$terms = get_terms( array(
'with_thumbnail' => false,
) );
When uninstalling the plugin, you can decide to not delete the thumbnails, simply define a constant in wp-config.php
:
define( 'SFTTH_KEEP_DATA', true );
Should work starting from WP 3.5, but tested only in WP 4.2.2+ so far.
Photo used for the banner by Nicolas Janik (CC BY 2.0).