0

I have a custom taxonomy registered as department, which works in other queries but it doesn't work when I use:

$args = array( 'child_of' => 483 , 'hide_empty' => false);
$subcats = get_terms( 'department', $args );

foreach( $subcats as $category ) {
    echo $category->name;
}

Once we remove child_of, it prints all the terms. Even using "parent" also not working. What am I missing here? In the database I can check that terms exist as hierarchy.

3 Answers 3

0

I got it solved on my own so, wanted to answer my own question.

in options table the results are cached, so I queried it and delete that.

SELECT * FROM `wp_options` WHERE `option_name` like '%department%'

department is my taxonomy name here.

You can check the function _get_term_hierarchy in taxonomy.php in wp-includes folder.

1
  • this won't work properly if the user has an object cache installed
    – Tom J Nowell
    Commented Jan 4 at 9:36
0

It's probably cached, but instead of making an SQL query to fix it and potentially break stuff, use the dedicated function instead:

clean_taxonomy_cache( 'department' );

Or if you have WP CLI:

wp cache flush

Other options include:

  • delete_option( 'department_children' );
  • Creating/deleting terms
0

Use parent Parameter If child_of is not working, they serve similar purposes, but parent is used when you want to retrieve terms that are direct children of a specific parent term.

$args = array( 'parent' => 483 , 'hide_empty' => false);
$subcats = get_terms( 'department', $args );

foreach( $subcats as $category ) {
    echo $category->name;
}

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.