I created a custom post type product and added a taxonomy product_category for it, with hierarchical set to true since I wanted parent categories (use case: fruits > berries etc). The admin list for product (/wp-admin/edit.php?post_type=product) only shows products with a parent taxonomy but none with a child taxonomy, even though the counter for products shows the right number.
When navigating to /wp-admin/edit.php?product_category=berries&post_type=product, it shows those missing posts.

What am I doing wrong? Below is the responsible code:

$taxonomy = [
  'hierarchical'          => true,
  'labels'                => [ ... ],
  'show_ui'               => true,
  'show_admin_column'     => true,
  'update_count_callback' => '_update_post_term_count',
  'query_var'             => true,
  'rewrite'               => true,
  'refersTo'              => 'product'

$postType = [
    'labels'      => [ ... ],
    'supports'    => [
  'taxonomies'  => [ 'product_category' ],
  'rewrite'     => true,
  'public'      => true,
  'has_archive' => true

function flush_rewrite_rules () {
  global $wp_rewrite;
add_action('init', 'flush_rewrite_rules' );

function register_products_taxonomy () {
  register_taxonomy( 'product_category', 'product', $taxonomy);
add_action( 'init', 'register_products_taxonomy', 5 )

function register_products_type () {
  register_post_type( 'product', $postType );
add_action( 'init', 'register_products_type' );
  • For sure it should be: register_post_type( 'product', $postType ); Something is wrong with the pasted code, there are more mistakes like: 'rewrite' => true 'public' => true, instead of 'rewrite' => true, 'public' => true, Code like this wouldn't parse - please check once again the code sample and correct the obvious errors.
    – Picard
    May 11, 2017 at 21:55
  • Yep, the original code is more complicated, so these are errors from copy pasting since the theme runs normally currently May 11, 2017 at 21:59
  • Sorry, hit submit too soon - the original code is way larger, but the code excerpts above are what it boils down to. I've corrected the errors. May 11, 2017 at 22:03
  • @Picard, any idea on this? May 12, 2017 at 16:11

1 Answer 1


It is not exactly the answer but here it will get formatted better than in the comments section.

To solve your problem I would start with the simplest possibile working set. Then line by line I would extend the solution checking if it still works after each step. You could start with:

function custom_post_types() {
    $args = array(
        'public' => true,
        'label'  => 'Products'
    register_post_type( 'product', $args );

    $args = array(
        'label' => 'Product category',
        'rewrite' => array( 'slug' => 'product_category' ),
        'hierarchical' => true,
    register_taxonomy( 'product_category', 'product', $args );
add_action('init', 'custom_post_types', 0);

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.