Custom Taxonomy Order


Custom Taxonomy Order is a plugin for WordPress which allows for the ordering of taxonomy terms.

It supports the following features:

  • Order (custom) terms through a simple drag-and-drop interface.
  • No custom coding needed. It uses standard WordPress filters.
  • It uses the available WordPress scripts and styles.
  • The plugin is lightweight, without any unnecessary scripts to load into the admin.
  • It falls in line gracefully with the look and feel of the WordPress interface.
  • It uses it’s own menu in the backend.
  • Translated or translatable.
  • Custom functions to order the taxonomies themselves.
  • There is no Pro version, everything works in the Free version.


This plugin is compatible with ClassicPress.


  • Screenshot of the menu page for Custom Taxonomy Order. The WordPress menu completely left lists the different taxonomies. The left metabox lists the toplevel terms. Right (or below) are the sub-terms.


  1. Upload the plugin folder to the /wp-content/plugins/ directory
  2. Activar el plugin a través del menú ‘Plugins’ en WordPress
  3. Order posts from the ‘Term Order’ menu in the admin
  4. Optionally set whether or not to have queries of the selected taxonomy be sorted by this order automatically.
  5. Optionally set 'orderby' => 'term_order', 'order' => 'ASC' to manually sort queries by this order.
  6. ¡Disfrútalo!

Preguntas frecuentes

I sorted the terms in the WordPress backend, but I don’t see it changed in the frontend

Did you set the option for that taxonomy to use that custom order? Make sure to check it so the filters run
with your taxonomy.

My custom taxonomy is not available in the menu page

This plugin will only offer to sort them when the taxonomy is set to public. Make sure you use ‘register_taxonomy’
with the public parameter set to true (default).

How do I sort the terms when using a custom query?

When you use default functions like get_terms or get_categories, this should not be needed.

If you do need to, you can apply the sorting for the taxonomy by using:
‘orderby’ => ‘term_order’.

I use get_term_children but the terms do not get sorted

This function only fetches the ID’s of the terms, so it is impossible to sort them by term_order. If you do need the sort_order, use a function like get_terms with the ‘child_of’ parameter. That will fetch an array of WP_Term objects that can be sorted.

I have a custom taxonomy that uses the Tag Cloud functionality, but it doesn’t sort like it should.

If it is a much used plugin, can you tell me what is the name for the taxonomy?
In the customtaxorder_wp_get_object_terms_order_filter it needs to be added, and the get_terms filter should not run
on that taxonomy. The tag_cloud_sort filter should do that.

If it is a custom taxonomy, you can also use a filter:

add_filter( 'customtaxorder_exclude_taxonomies', 'add_taxonomy_to_customtaxorder_exclude_taxonomies' );
function add_taxonomy_to_customtaxorder_exclude_taxonomies( $taxonomies ) {
    $taxonomies[] = 'directory'; // name of your tag taxonomy.
    return $taxonomies;
I’m using the_tags function, but it doesn’t sort as it should.

There is a bug with the the_tags function, where it will sort according to the setting for categories.
This happens in the ‘customtaxorder_apply_order_filter’ function where the $args has two taxonomies but only one orderby can be returned.

I use WooCommerce Attributes.

This plugin only supports sorting the attributes/terms. These are the items like S, M and L.
For sorting the taxonomies like ‘size’, you need to sort them on Woo’s attributes page.

What capabilities are needed?

For sorting the terms you need the manage_categories capability.

Can I sort the taxonomies themselves?

There is an admin page to sort them, and save them in the database.

You can use a function to sort taxonomies themselves like this:

$taxonomy_objects = get_object_taxonomies( 'post', 'objects' );
$taxonomy_objects = customtaxorder_sort_taxonomies($taxonomy_objects);
foreach (  $taxonomy_objects as $tax ) {
    echo $tax->name . "<br />";

The function requires a parameter with an array of taxonomy objects.

Is there an API?

There are actions that you can use with add_action.

‘customtaxorder_update_order’ is being run when saving the order of terms in the admin page.
You could add the following example to your functions.php and work from there.

function custom_action( $new_order ) {
    print_r( $new_order );
add_action('customtaxorder_update_order', 'custom_action');

‘customtaxorder_terms_ordered’ is being run after term array has been ordered with usort.
Please be aware that this can be triggered multiple times during a request.
You could add the following example to your functions.php and work from there.

function custom_action( $terms_new_order, $terms_old_order ) {
    print_r( $terms_new_order );
add_action('customtaxorder_terms_ordered', 'custom_action', 10, 2);
How can I add my own translation?

Translations can be added very easily through GlotPress.
You can start translating strings there for your locale. They need to be validated though, so if there’s no validator yet,
and you want to apply for being validator, please post it on the support forum. I will make a request on make/polyglots to
have you added as validator for this plugin/locale.


2 de agosto de 2019
I use this plugin in combination with the knowledge base Theme "Manual" to reorganize some category lists. i tried other plugins but this is the only one that works out of the box. Great Job! Thank you very much!
15 de mayo de 2019
Hi, I can't hide the left ORDER menu with adminimize, please how can i hide it for non admin ? thanks
23 de abril de 2019
It works so it’s good. Some interesting features compared to other plugins of this kind.
Leer todas las 68 reseñas

Colaboradores y desarrolladores

«Custom Taxonomy Order» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


«Custom Taxonomy Order» ha sido traducido a 5 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce «Custom Taxonomy Order» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios


  • 2018-10-17
  • Sort attributes for WooCommerce automatically.
  • Show name and label of taxonomy in the lists.


  • 2018-09-07
  • Add support for Dark Mode beta plugin.


  • 2018-07-02
  • Add action ‘customtaxorder_terms_ordered’.


  • 2018-02-16
  • Sort terms with numeric values correctly (thanks empiresafe).


  • 2017-11-30
  • Add action ‘custom_taxonomy_order_ne_settings_buttons’ to settings page.


  • 2017-08-04
  • Set Woo attribute terms to public.


  • 2017-07-10
  • Drop support for attributes in WooCommerce (deprecated).
  • Use the correct number of parameters with add_filter calls.
  • Set default order in WP_Term_Query->get_terms() according to our settings (probably WP 4.9).


  • 2017-03-29
  • Add Nonce check to admin pages.
  • Register setting for taxonomies too, with callback function.
  • Run sanitize_text_field on the keyname in the option for customtaxorder_settings.


  • 2016-10-19
  • Only skip one sort for tags on frontend, not admin.


  • 2016-10-06
  • Sort children with a float as ancestor.child when set to term_order.


  • 2016-10-04
  • Remove global var, add function customtaxorder_get_settings().
  • Fix PHP notices in customtaxorder_apply_order_filter.


  • 2016-07-26
  • Flush object cache when order is changed in taxonomy ordering plugin (props James Bonham).


  • 2016-07-24
  • Fix PHP warnings.
  • Remove ru_RU translation, it is at 100% in GlotPress.
  • Update Donate text.


  • 2016-03-01
  • Add filters for custom capabilities.


  • 2016-01-11
  • Support Advanced Custom Fields with its Taxonomy Fields.


  • 2016-01-06
  • Really fix Woo get_attribute() (thanks eddy_boy).


  • 2015-11-26
  • Fix for Woo get_attribute() (thanks mantish).


  • 2015-11-26
  • Properly enqueue admin scripts.
  • Rename and prefix js functions properly.


  • 2015-11-07
  • Explode() expects parameter to be a string, not an array.
  • Better dashicon.
  • Drop pot, nl_NL, they are maintained at GlotPress.


  • 2015-11-07
  • Offer page and functions to support the taxonomies themselves.
  • Support WooCommerce attributes.
  • Only support WordPress 3.7+, since they really are supported.
  • More specific CSS.
  • Add icon on admin pages.
  • Update pot, nl_NL.


  • 2015-09-05
  • Add filter for (not) sorting a tagcloud (thanks sunriseweb).
  • For sub-term, start counting at term_order of parent-term, so sorting looks reasonable.
  • «Order Alphabetically» button is no button-primary.
  • Change textdomain to slug.
  • Make admin_notices dismissible.
  • Add version to admin CSS.


  • 2015-08-05
  • Use correct headings on admin pages.


  • 2015-05-31
  • Add About page.
  • Update pot and nl_NL.


  • 2015-03-25
  • Support Link Manager plugin.


  • 2015-03-21
  • Better suppport for WPMU, also set up new blogs (thanks Andrew Patton).


  • 2015-03-13
  • Wrap radio buttons inside label, so the label works (thanks Andrew Patton).


  • 2015-02-28
  • Separate settingspage to own php-file.
  • Add de_DE (thanks Patrick Skiebe).


  • 2015-01-21
  • Add test for capability inside admin page as well.


  • 2014-12-11
  • Fix conflict with wp-catalogue plugin


  • 2014-09-12
  • Fix notices with defensive programming


  • 2014-08-22
  • More compatibility with WPML


  • 2014-08-20
  • Some Compatibility with WPML Plugin


  • 2014-08-15
  • Add action for saving the terms


  • 2014-08-06
  • New default settings page
  • Filter added for get_the_terms
  • Don’t filter tags at get_terms filtering
  • Updated nl_NL


  • 2014-06-30
  • Also be able to sort the builtin taxonomies
  • Fix bug with sorting tags


  • 2014–5-13
  • Added fr_FR (Jean-Christophe Brebion)


  • 2014-05-02
  • Added ru_RU (Alex Rumyantsev)
  • Small gettext fixes
  • update nl_NL


  • 2014-04-15
  • Multisite activation doesn’t work if it isn’t done network wide


  • 2014-04-11
  • Don’t usort on an array which doesn’t contain objects


  • 2014-03-29
  • Also filter at the get_terms hook for get_terms() and wp_list_categories()


  • 2014-03-24
  • Update pl_PL


  • 2014-03-23
  • Improve html/css


  • 2014-03-23
  • Remove obsolete images


  • 2014-03-22
  • Add settings link


  • 2014-03-22
  • New dashicon


  • 2014-03-22
  • Add alphabetical sorting to options as well
  • Update Polish and Dutch


  • 2014-03-18
  • Add Polish translation (Paweł Data)
  • Sort Alphabetically (landwire)


  • 2014-02-25
  • Fix activation code to really generate term_order column


  • 2014-02-18
  • Ouch, remove testing code


  • 2014-02-18
  • Fix activation on network install (Matteo Boria)


  • 2014-01-26
  • Also add filter for wp_get_object_terms and wp_get_post_terms


  • 2014-01-26
  • Only filter categories when auto-sort is enabled


  • 2014-01-25
  • Filter added for get_the_categories


  • 2014-01-25
  • Fix errors «undefined index» for undefined options


  • 2014-01-03
  • Use print for translated substring (Matteo Boria)
  • Add Italian Translation (Matteo Boria)


  • 2013-12-30
  • Fix PHP error-notice when activating


  • 2013-12-10
  • Add es_ES translataion, thanks Andrew and Jelena


  • 2013-10-20
  • do init stuff in the init function
  • also update term_order in term_relationships table
  • security update: validate input with $wpdb->prepare()


  • 2013-10-10
  • renamed/forked as Custom Taxonomy Order New Edition
  • fixed a bug with ordering in the backend
  • add localisation
  • add nl_NL lang


  • Complete code overhaul and general rewrite to bring things up to speed
  • Updated for WordPress 3.2 Admin Design
  • Added auto-sort query option
  • Several text fixes for overall consistency and clarity.
  • Various small bugfixes and optimizations


  • Primera versión