• Skip to main content
  • Skip to primary sidebar
  • Skip to footer

nSiteful Web Builders

Building a Better Web - One Site at a Time.

  • Home
  • About
    • Testimonials
    • Resources
    • Partner With Me
    • Frequently Asked Questions
  • Web Sites
  • Online Marketing
  • WordPress Support
    • Customized WordPress Training
    • 60-for-60 Sessions
  • Web Applications
  • Blog
    • At-A-Glance
    • Blog Articles Grouped by Category
    • Case Studies
    • General
    • Portfolio
    • Reviews
    • Snippets
    • Techniques
    • Projects
  • Contact
    • Purchase Retainer Consulting Hours
    • About Retainer Consulting Hours
    • Book a Meeting with Jeff
    • Tell Me About Your Web Project
    • nSiteful Newsletter Archives
    • nSiteful Rewards
Screenshot

By Jeff - 5/13/2016
Cats: Snippets · Tags: php, Taxonomies, WooCommerce, WordPress

snippets

Display WordPress and WooCommerce Tags as Lists

Last updated August 5th, 2022 at 11:10 am

WordPress tag widgets display tags in a tag cloud by default. Here’s how to override that default behavior; specifically, how to display WordPress and WooCommerce tags as lists.

For the Standard WordPress Tag Cloud Widget

tag-cloud-problem
Since WordPress 4.4, the functioning of the widget_tag_cloud_args filter hook (see here) changed in a way that I cannot adequately explain. However, what I do know is that the addition of the 'echo' => false argument somehow (counterintuitively, if you ask me) removed all the structural wrappers of the tag cloud unless one explicitly set the value of the 'echo' argument to false.

The short answer is that without passing 'echo' => false to the filter, the result is (in WordPress 4.4+) that your tag cloud (or list) will hug the left margin of the sidebar (and any title you enter in the widget will not appear). This is because the tag listing is being echoed, rather than returned for processing. Again, I wish I understood why. If you can explain this, please comment below.

The code snippet should be added to your theme’s (or child theme’s) functions.php or in a plugin. I tend to put these in a file in the mu-plugins folder.

Version One:

This version works. Note the added 'echo' => false line.

add_filter('widget_tag_cloud_args','nwb_tag_cloud_filter');
function nwb_tag_cloud_filter($args) {
	$args = array(
		'smallest' => 14, 
		'largest' => 14, 
		'format' => 'list', 
		'unit' => 'px', 
		'echo' => false, 
		);
	return $args;
}

Version Two:

This version, offered by afainu in the WordPress support forums, also works and may be preferable. That’s because it uses WordPress’ enhanced version of array_merge(), thus maintaining, rather than overwriting, the defaults.

add_filter('widget_tag_cloud_args','nwb_tag_cloud_filter');
function nwb_tag_cloud_filter($args) {
	$my_args = array(
		'smallest' => 14, 
		'largest' => 14, 
		'format' => 'list', 
		'unit' => 'px', 
		);
	$args = wp_parse_args( $args, $my_args );
	return $args;
}

For the WooCommerce Product Tags Widget

To convert the WooCommerce Product Tags Widget display from tag cloud to list, use something like this. The key here is the taxonomy argument, whose value must correspond to the slug for the WooCommerce product tag (‘product_tag’, by default).

add_filter('woocommerce_product_tag_cloud_widget_args', 'nwb_woo_tag_cloud_filter');
function nwb_woo_tag_cloud_filter($args) {
	$args = array(
		'smallest' => 14, 
		'largest' => 14, 
		'format' => 'list', 
		'taxonomy' => 'product_tag', 
		'unit' => 'px', 
		);
	return $args;
}

Like what you see? Share with others and join my mailing list. No long-term commitment, unsubscribe any time.

Related Posts

  1. PHP: Get All Included Files
  2. How to add an About Us blurb to every WordPress blog post
  3. Dynamic Linear Gradients for Background Images in Genesis
  4. WordPress Categories and Tags
  5. Which Categories and Tags Should I Use?

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

mailchimp signup

Subscribe to get notified when new articles are published. Unsubscribe any time. No spam. I promise. Check out my newsletter archives.

social

Twitter Facebook LinkedIn

Recent Articles

  • Post-Specific CSS for WordPress October 5, 2026
  • You built an online course, but they haven’t come. September 16, 2026
  • Custom MemberPress Pricing Pages December 19, 2025
  • CSS Data Attribute Override December 11, 2025
  • MemberPress Rules Using Custom Taxonomies and Custom Roles December 10, 2025

Filter By Category/Tag

Categories

  • Case Studies (8)
  • For Staff (1)
  • General (73)
  • Portfolio (7)
  • Reviews (14)
  • Snippets (24)
  • Techniques (52)

Popular Tags

Advanced Custom Fields Blogging Child Themes Content Marketing CSS Customer Service Custom Fields Custom Post Types Diagnostics Domain Names Facebook FooGallery Genesis Hosting HTML Images iPhone Libra Live Chat Marketing Media MemberPress MemberPress Courses Membership Sites Mobile-Friendly MySQL Photo Gallery php Pinterest Plugins Post Formats Pricing Project Management SEBA SEO Seth Godin Shortcodes Social Networking Surveys Taxonomies Twitter Video Web design Web forms WordPress

Footer

Background

Web Sites | WordPress Support | Web Applications.

Formally trained in liberal arts and education (I have a B.A. in Government from Harvard and studied Secondary Education at Rutgers Graduate School), I have honed my skills in the communication arts and sciences as a teacher, trainer, instructional designer, writer, photographer, calligrapher, helpdesk manager, database programmer, and multimedia developer.

(I've also been a group counselor, waiter, bartender, bicycle messenger boy, computer salesman, carpenter's helper, financial analyst, and school board president.)

Tech

Systems since 1983.
Web sites since 1994.
PHP since 2001.
WordPress since 2007.

Contact

Book Meeting
770-772-5134
Email Jeff
Send Money
All Ways

Copyright 2026, nSiteful Web Builders, Inc.

Cookies Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
View preferences
  • {title}
  • {title}
  • {title}
https://iframe.mediadelivery.net/embed/392008/42d18bc1-2adc-4741-b733-053d08d09c32
https://vz-000c5976-3ab.b-cdn.net/42d18bc1-2adc-4741-b733-053d08d09c32/play_720p.mp4

Receive occasional emails from Jeff