I have successfully registered my custom post types, custom post statuses and my custom taxonomies/terms. All is working fine but...

It seems that both the 'categories' column within the custom post type edit screen as well as the count for each of the terms, only work when a post's status is 'published'. What I need is for both to work when a post's status is set to one of my own custom registered statuses.

For example, I have my post status set to 'enquiry' and the term 'Test' is currently associated (confirmed in DB). However, the count for 'Test' remains at 0 and the admin column simply display '-'. If I change the post status to published, both update and display correctly.

Is it possible to get this working in this scenario? I'd rather avoid having to code it myself, surely there is a hook that I am missing?

Any ideas?

1 Answer 1


Did you try adding a count callback?

// Register Custom Taxonomy
function custom_taxonomy() {
    $labels = array(
        'name'                       => _x( 'Taxonomies', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Taxonomy', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Taxonomy', 'text_domain' ),
        'all_items'                  => __( 'All Items', 'text_domain' ),
        'parent_item'                => __( 'Parent Item', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
        'new_item_name'              => __( 'New Item Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Item', 'text_domain' ),
        'edit_item'                  => __( 'Edit Item', 'text_domain' ),
        'update_item'                => __( 'Update Item', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
        'search_items'               => __( 'Search Items', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
        'update_count_callback'      => '_update_generic_term_count',
    register_taxonomy( 'taxonomy', array( 'post' ), $args );

Source: http://generatewp.com/taxonomy/

  • Thank you for the pointer! _update_posy_term_count only counts for posts that are 'published' but _update_generic_term_count is the one I needed. The counting is now working, but the admin column still displays - and not the terms associated with the post. Any ideas on that one? I have custom code that has populated the field, but would rather use a built-in method
    – Mike
    Mar 24, 2015 at 13:13
  • You're welcome, let me know how it works.
    – Ciprian
    Mar 24, 2015 at 13:13
  • sorry I hit return too soon. Just edited my response as an FYI for you
    – Mike
    Mar 24, 2015 at 13:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.