Taxonomy List Widget
Taxonomy List Widget
Description
Creates lists of non-hierarchical taxonomies (such as post tags) as an alternative to term (tag) clouds. Multiple widgets can be used, each with its own set of options.
Numerous formatting options are provided, including maximum numbers of terms, term order, truncating of term names, and more. List styles are fully customizable, with built-in support for bulleted lists and numbered lists.
Using the taxonomy_list_widget function, users can generate lists for use outside of the included widget.
Only use version 1.2 or higher with WordPress 4.2 and later releases. WordPress 4.2 changed how taxonomy information is stored in the database, which directly impacts this plugin’s include/exclude term functionality.
This plugin was formerly known as the Tag List Widget. It was completely rewritten for version 1.0.
Installation
- Upload taxonomy-list-widget.php to /wp-content/plugins/.
- Activate plugin through the WordPress Plugins menu.
- Activate widget from the Appearance > Widgets menu in WordPress.
- Set display options from the widget’s administration panel.
Faq
Since I first wrote the Tag Dropdown Widget plugin upon which this plugin is based (in November 2009), WordPress introduced custom taxonomies and, as more-fully discussed below, saw a new widgets API overtake its predecessor. As part of the widgets-API-related rewrite, I expanded the plugin to support non-hierarchical custom taxonomies, which necessitated a new name for the plugin.
When I first wrote the Tag Dropdown Widget plugin, which I later forked to create the Tag List Widget plugin, WordPress was amidst a change in how widgets were managed. I decided to utilize the old widget methods to ensure the greatest compatibility at the time. In the nearly two years since I released the first version of this plugin, the new widget system has been widely adopted, putting this plugin at a disadvantage. So, I rewrote the plugin to use the new widget API and added support for non-hierarchical taxonomies other than just post tags.
As discussed above, WordPress’ widget system has changed drastically since I first released this plugin. To facilitate multiple uses of the same widget while allowing each to maintain its own set of options, the manner for storing widget options changed. As a result, there is no practical way to transition a widget’s options from version 0.3.1 to 1.0.
Insert the function <?php if( function_exists( 'taxonomy_list_widget' ) ) echo taxonomy_list_widget( $args, $id ); ?> where the list should appear, specifying $args as an array of arguments and, optionally, $id as a string uniquely identifying this list.
- taxonomy – slug of taxonomy for list. Defaults to
post_tag. - select_name – name of first (default) option in the list. Defaults to
Select Tag. - max_name_length – integer representing maximum length of term name to display. Set to
0to show full names. Defaults to0. - cutoff – string indicating that a term name has been cutoff based on the
max_name_lengthsetting. Defaults to an ellipsis (…). - limit – integer specifying maximum number of terms to retrieve. Set to
0for no limit. Defaults to0. - orderby – either
nameto order by term name orcountto order by the number of posts associated with the given term. Defaults toname. - order – either
ASCfor ascending order orDESCfor descending order. Defaults toASC. - threshold – integer specifying the minimum number of posts to which a term must be assigned to be included in the list. Set to
0for now threshold. Defaults to0. - incexc –
includeorexcludeto either include or exclude the terms whose IDs are included inincexc_ids. By default, this restriction is not enabled. - incexc_ids – comma-separated list of term IDs to either include or exclude based on the
incexcsetting. - hide_empty – set to
falseto include in the list any terms that haven’t been assigned to any objects (i.e. unused tags). Defaults totrue. - post_counts – set to
trueto include post counts after term names. Defaults tofalse. - delimiter – sets list style. Native options are
ul,ol, andnlfor bulleted list, numbered list, and line breaks, respectively. By passing an array with keysbefore_list,after_list,before_item, andafter_item, you can completely customize the list style. - rel – either
dofollowornofollow. Can still usetaxonomy_list_widget_link_relfilter to specify link relationship.
Version 1.0 represents a complete rewrite of the original Tag List Widget plugin. As part of the rewrite, all prior functions for generating tag lists were deprecated, or marked as obsolete, because they are unable to access the full complement of features introduced in version 1.0. While the functions still exist, their capabilities are extremely limited and they should not be replaced with taxonomy_list_widget().
Term IDs can be obtained in a variety of ways. The easiest is to visit the taxonomy term editor (Post Tags, found under Posts, for example) and, while hovering over the term’s name, looking at your browser’s status bar. At the very end of the address shown in the status bar, the term ID will follow the text “tag_ID.”
You can also obtain the term ID by clicking the edit link below any term’s name in the Post Tags page. Next, look at your browser’s address bar. At the very end of the address, the term ID will follow the text “tag_ID.”
This plugin relies on WordPress’ get_terms function (https://codex.wordpress.org/Function_Reference/get_terms). To modify the arguments passed to this function, use the taxonomy_list_widget_options filter to specify any of the arguments discussed in the Codex page for get_terms.
To make targeting a specific filter reference possible should you use multiple instances of the list (multiple widgets, use of the taxonomy_list_widget function, or some combination thereof), the filter provides a second argument, $id, that is either the numeric ID of the widget’s instance or the string provided as the second argument to taxonomy_list_widget.
Reviews
Works, thanks
By janelwashere on November 26, 2021
Didn't work
By troyw2015 on August 12, 2021
works great
By zinkab on June 26, 2020
Good plugin that works. Issues with Mobile Friendliness though
By waleedkrashid on May 16, 2020
no taxonomies
By mgstudio on July 20, 2018
Very neat!
By gmj on July 22, 2017
Easy and Simple to use
By TiberiusJ on December 21, 2016
has served me well
By mbartizmo on September 23, 2016
Changelog
1.3.2
- Fix translation support.
1.3.1
- PHP 7.3 compatibility
1.3
- Update for WordPress 4.3 by removing PHP4-style widget constructor usage (https://make.wordpress.org/core/2015/07/02/deprecating-php4-style-constructors-in-wordpress-4-3/).
1.2
- Update for WordPress 4.2 to handle term splitting in the plugin’s include/exclude functionality. Details at https://make.wordpress.org/core/2015/02/16/taxonomy-term-splitting-in-4-2-a-developer-guide/.
1.1.2
- Correct problem in WordPress 3.3 and higher that resulted in an empty taxonomy dropdown.
- Remove all uses of PHP short tags.
1.1.1
- Allow empty title in widget options. If empty, the
taxonomy_list_widget_titlefilter isn’t run.
1.1
- Provide control over link relationship (
dofollowandnofollow) in widget. This capability is still available via thetaxonomy_list_widget_link_relfilter.
1.0.1
- Fix fatal error in older WordPress versions resulting from PHP4 and PHP5 constructors existing in widget class.
1.0.0.2
- Fix bug in post count threshold that resulted in no terms being listed.
1.0.0.1
- Fix fatal error
1.0
- Completely rewritten plugin to use WordPress’ newer Widgets API.
- Drop support for WordPress 2.7 and earlier.
- Add support for all public, non-hierarchical custom taxonomies, in addition to Post Tags.
- Introduce new, more flexible function for manually generating lists.
- Fixed persistent bugs in the include/exclude functionality.
- Widget admin is translation-ready.
0.3.1
- Replace id on list items with class.
0.3
- Reduced variables stored in database to two.
0.2
- Added function
TLW_direct