Recently, a client needed to be able to filter their custom post type posts list by a given taxonomy, making it easier to find what they were looking for. Fortunately with WordPress this isn't difficult.
For the example below, the client was a restaurant who had a custom post type named dish, and a taxonomy associated with it named dish-type.
All that was required was to add the following code to your theme, or child-theme's functions.php file.
XCJcXHJcXG5hZGRfYWN0aW9uKCBcJ3Jlc3RyaWN0X21hbmFnZV9wb3N0c1wnLCBcJ215X3Jlc3RyaWN0X21hbmFnZV9wb3N0c1wnICk7XFxyXFxuXFx7WyYqJl19clxcbmZ1bmN0aW9uIG15X3Jlc3RyaWN0X21hbmFnZV9wb3N0cygpIHtcXHJcXG5cXHRnbG9iYWwgJHR5cGVub3c7XFxyXFxuXFx0JHRheG9ub217WyYqJl19eSA9IFwnZGlzaC10eXBlXCc7XFxyXFxuXFx0aWYoICR0eXBlbm93ICE9IFxcXCJwYWdlXFxcIiAmYW1wOyZhbXA7ICR0eXBlbm93ICE9IFxcXCJwb3N0e1smKiZdfVxcXCIgKXtcXHJcXG5cXHRcXHQkZmlsdGVycyA9IGFycmF5KCR0YXhvbm9teSk7XFxyXFxuXFx0XFx0Zm9yZWFjaCAoJGZpbHRlcnMgYXMgJHRheF9ze1smKiZdfWx1Zykge1xcclxcblxcdFxcdFxcdCR0YXhfb2JqID0gZ2V0X3RheG9ub215KCR0YXhfc2x1Zyk7XFxyXFxuXFx0XFx0XFx0JHRheF9uYW1lID0gJHRhe1smKiZdfXhfb2JqLSZndDtsYWJlbHMtJmd0O25hbWU7XFxyXFxuXFx0XFx0XFx0JHRlcm1zID0gZ2V0X3Rlcm1zKCR0YXhfc2x1Zyk7XFxyXFxuXFx0XFx0XFx0e1smKiZdfWVjaG8gXFxcIl9fX0hUTUxfTFRfUExBQ0VIT0xERVJfX19zZWxlY3QgaWQ9XFxcIiR0YXhfc2x1Z1xcXCIgY2xhc3M9XFxcInBvc3Rmb3JtXFxcIiBue1smKiZdfWFtZT1cXFwiJHRheF9zbHVnXFxcIl9fX0hUTUxfR1RfUExBQ0VIT0xERVJfX19cXFwiO1xcclxcblxcdFxcdFxcdGVjaG8gXFxcIlxcclxcbl9fX0hUTUxfTFR7WyYqJl19X1BMQUNFSE9MREVSX19fb3B0aW9uIHZhbHVlPVxcXCJcXFwiX19fSFRNTF9HVF9QTEFDRUhPTERFUl9fX1Nob3cgQWxsICR0YXhfbmFtZV97WyYqJl19X19IVE1MX0xUX1BMQUNFSE9MREVSX19fXFwvb3B0aW9uX19fSFRNTF9HVF9QTEFDRUhPTERFUl9fX1xcXCI7XFxyXFxuXFx0XFx0XFx0Zm9yZWFje1smKiZdfWggKCR0ZXJtcyBhcyAkdGVybSkgeyBlY2hvIFwnXFxyXFxuX19fSFRNTF9MVF9QTEFDRUhPTERFUl9fX29wdGlvbiBzZWxlY3RlZD1cXFwic3tbJiomXX1lbGVjdGVkXFxcIiB2YWx1ZT1cXFwiLiAkdGVybS0mZ3Q7c2x1ZywgJF9HRVRbJHRheF9zbHVnXSA9PSAkdGVybS0mZ3Q7c2x1ZyA/IFxcXCJfe1smKiZdfV9fSFRNTF9HVF9QTEFDRUhPTERFUl9fX1wnIC4gJHRlcm0tJmd0O25hbWUgLlwnIChcJyAuICR0ZXJtLSZndDtjb3VudCAuXCcpX19fSFRNe1smKiZdfUxfTFRfUExBQ0VIT0xERVJfX19cXC9vcHRpb25fX19IVE1MX0dUX1BMQUNFSE9MREVSX19fXCc7IH1cXHJcXG5cXHRcXHRcXHRlY2hvIFxcXCJcXHJcXHtbJiomXX1uX19fSFRNTF9MVF9QTEFDRUhPTERFUl9fX1xcL3NlbGVjdF9fX0hUTUxfR1RfUExBQ0VIT0xERVJfX19cXFwiO1xcclxcblxcdFxcdH1cXHJcXG5cXHtbJiomXX10fVxcclxcbn1cXHJcXG5cXHJcXG5cIntbJiomXX0=
Pay particular attention to the $taxonomy = 'dish-type' line. This is the taxonomy slug, and all you'll need to implement a custom filter.
The results of the above code are as follows – a nice filter allowing the user to easily find what they are looking for by refining by a custom taxonomy.

Leave A Comment