{"pageProps":{"title":"wp_check_term_hierarchy_for_loops()","titleType":"Function","type":"functions","content":"

wp_check_term_hierarchy_for_loops() WordPress Function

The wp_check_term_hierarchy_for_loops() function is used to check if a given term has any children. If it does, it recursively checks each child to see if it has any children of its own, and so on. This function is used to prevent infinite loops when working with hierarchical data.

wp_check_term_hierarchy_for_loops( int $parent, int $term_id, string $taxonomy ) #

Checks the given subset of the term hierarchy for hierarchy loops.


Description

Prevents loops from forming and breaks those that it finds.

Attached to the ‘wp_update_term_parent’ filter.


Top ↑

Parameters

$parent

(int)(Required)term_id of the parent for the term we're checking.

$term_id

(int)(Required)The term we're checking.

$taxonomy

(string)(Required)The taxonomy of the term we're checking.


Top ↑

Return

(int) The new parent for the term.


Top ↑

Source

File: wp-includes/taxonomy.php

function wp_check_term_hierarchy_for_loops( $parent, $term_id, $taxonomy ) {\n\t// Nothing fancy here - bail.\n\tif ( ! $parent ) {\n\t\treturn 0;\n\t}\n\n\t// Can't be its own parent.\n\tif ( $parent === $term_id ) {\n\t\treturn 0;\n\t}\n\n\t// Now look for larger loops.\n\t$loop = wp_find_hierarchy_loop( 'wp_get_term_taxonomy_parent_id', $term_id, $parent, array( $taxonomy ) );\n\tif ( ! $loop ) {\n\t\treturn $parent; // No loop.\n\t}\n\n\t// Setting $parent to the given value causes a loop.\n\tif ( isset( $loop[ $term_id ] ) ) {\n\t\treturn 0;\n\t}\n\n\t// There's a loop, but it doesn't contain $term_id. Break the loop.\n\tforeach ( array_keys( $loop ) as $loop_member ) {\n\t\twp_update_term( $loop_member, $taxonomy, array( 'parent' => 0 ) );\n\t}\n\n\treturn $parent;\n}\n

Expand full source codeCollapse full source codeView on TracView on GitHub


Top ↑

Related


Top ↑

Changelog

Changelog
VersionDescription
3.1.0Introduced.
","description":"Checks the given subset of the term hierarchy for hierarchy loops.","sidebarFiles":{"Hook":[{"componentTitle":"add_term_relationship","componentLink":"/reference/hooks/add_term_relationship","private":"","deprecated":""},{"componentTitle":"added_term_relationship","componentLink":"/reference/hooks/added_term_relationship","private":"","deprecated":""},{"componentTitle":"category_link","componentLink":"/reference/hooks/category_link","private":"","deprecated":""},{"componentTitle":"clean_object_term_cache","componentLink":"/reference/hooks/clean_object_term_cache","private":"","deprecated":""},{"componentTitle":"clean_taxonomy_cache","componentLink":"/reference/hooks/clean_taxonomy_cache","private":"","deprecated":""},{"componentTitle":"clean_term_cache","componentLink":"/reference/hooks/clean_term_cache","private":"","deprecated":""},{"componentTitle":"create_{$taxonomy}","componentLink":"/reference/hooks/create_taxonomy","private":"","deprecated":""},{"componentTitle":"create_term","componentLink":"/reference/hooks/create_term","private":"","deprecated":""},{"componentTitle":"created_{$taxonomy}","componentLink":"/reference/hooks/created_taxonomy","private":"","deprecated":""},{"componentTitle":"created_term","componentLink":"/reference/hooks/created_term","private":"","deprecated":""},{"componentTitle":"delete_{$taxonomy}","componentLink":"/reference/hooks/delete_taxonomy","private":"","deprecated":""},{"componentTitle":"delete_term","componentLink":"/reference/hooks/delete_term","private":"","deprecated":""},{"componentTitle":"delete_term_relationships","componentLink":"/reference/hooks/delete_term_relationships","private":"","deprecated":""},{"componentTitle":"delete_term_taxonomy","componentLink":"/reference/hooks/delete_term_taxonomy","private":"","deprecated":""},{"componentTitle":"deleted_term_relationships","componentLink":"/reference/hooks/deleted_term_relationships","private":"","deprecated":""},{"componentTitle":"deleted_term_taxonomy","componentLink":"/reference/hooks/deleted_term_taxonomy","private":"","deprecated":""},{"componentTitle":"edit_{$taxonomy}","componentLink":"/reference/hooks/edit_taxonomy","private":"","deprecated":""},{"componentTitle":"edit_{$taxonomy}_{$field}","componentLink":"/reference/hooks/edit_taxonomy_field","private":"","deprecated":""},{"componentTitle":"edit_term","componentLink":"/reference/hooks/edit_term","private":"","deprecated":""},{"componentTitle":"edit_term_{$field}","componentLink":"/reference/hooks/edit_term_field","private":"","deprecated":""},{"componentTitle":"edit_term_taxonomies","componentLink":"/reference/hooks/edit_term_taxonomies","private":"","deprecated":""},{"componentTitle":"edit_term_taxonomy","componentLink":"/reference/hooks/edit_term_taxonomy","private":"","deprecated":""},{"componentTitle":"edit_terms","componentLink":"/reference/hooks/edit_terms","private":"","deprecated":""},{"componentTitle":"edited_{$taxonomy}","componentLink":"/reference/hooks/edited_taxonomy","private":"","deprecated":""},{"componentTitle":"edited_term","componentLink":"/reference/hooks/edited_term","private":"","deprecated":""},{"componentTitle":"edited_term_taxonomies","componentLink":"/reference/hooks/edited_term_taxonomies","private":"","deprecated":""},{"componentTitle":"edited_term_taxonomy","componentLink":"/reference/hooks/edited_term_taxonomy","private":"","deprecated":""},{"componentTitle":"edited_terms","componentLink":"/reference/hooks/edited_terms","private":"","deprecated":""},{"componentTitle":"get_{$taxonomy}","componentLink":"/reference/hooks/get_taxonomy","private":"","deprecated":""},{"componentTitle":"get_ancestors","componentLink":"/reference/hooks/get_ancestors","private":"","deprecated":""},{"componentTitle":"get_object_terms","componentLink":"/reference/hooks/get_object_terms","private":"","deprecated":""},{"componentTitle":"get_term","componentLink":"/reference/hooks/get_term","private":"","deprecated":""},{"componentTitle":"get_terms","componentLink":"/reference/hooks/get_terms","private":"","deprecated":""},{"componentTitle":"post_format_rewrite_base","componentLink":"/reference/hooks/post_format_rewrite_base","private":"","deprecated":""},{"componentTitle":"pre_{$taxonomy}_{$field}","componentLink":"/reference/hooks/pre_taxonomy_field","private":"","deprecated":""},{"componentTitle":"pre_category_nicename","componentLink":"/reference/hooks/pre_category_nicename","private":"","deprecated":""},{"componentTitle":"pre_delete_term","componentLink":"/reference/hooks/pre_delete_term","private":"","deprecated":""},{"componentTitle":"pre_insert_term","componentLink":"/reference/hooks/pre_insert_term","private":"","deprecated":""},{"componentTitle":"pre_term_{$field}","componentLink":"/reference/hooks/pre_term_field","private":"","deprecated":""},{"componentTitle":"pre_term_link","componentLink":"/reference/hooks/pre_term_link","private":"","deprecated":""},{"componentTitle":"registered_taxonomy","componentLink":"/reference/hooks/registered_taxonomy","private":"","deprecated":""},{"componentTitle":"registered_taxonomy_{$taxonomy}","componentLink":"/reference/hooks/registered_taxonomy_taxonomy","private":"","deprecated":""},{"componentTitle":"registered_taxonomy_for_object_type","componentLink":"/reference/hooks/registered_taxonomy_for_object_type","private":"","deprecated":""},{"componentTitle":"saved_{$taxonomy}","componentLink":"/reference/hooks/saved_taxonomy","private":"","deprecated":""},{"componentTitle":"saved_term","componentLink":"/reference/hooks/saved_term","private":"","deprecated":""},{"componentTitle":"set_object_terms","componentLink":"/reference/hooks/set_object_terms","private":"","deprecated":""},{"componentTitle":"split_shared_term","componentLink":"/reference/hooks/split_shared_term","private":"","deprecated":""},{"componentTitle":"tag_link","componentLink":"/reference/hooks/tag_link","private":"","deprecated":""},{"componentTitle":"taxonomy_labels_{$taxonomy}","componentLink":"/reference/hooks/taxonomy_labels_taxonomy","private":"","deprecated":""},{"componentTitle":"term_{$field}","componentLink":"/reference/hooks/term_field","private":"","deprecated":""},{"componentTitle":"term_{$field}_rss","componentLink":"/reference/hooks/term_field_rss","private":"","deprecated":""},{"componentTitle":"term_exists_default_query_args","componentLink":"/reference/hooks/term_exists_default_query_args","private":"","deprecated":""},{"componentTitle":"term_id_filter","componentLink":"/reference/hooks/term_id_filter","private":"","deprecated":""},{"componentTitle":"term_link","componentLink":"/reference/hooks/term_link","private":"","deprecated":""},{"componentTitle":"unregistered_taxonomy","componentLink":"/reference/hooks/unregistered_taxonomy","private":"","deprecated":""},{"componentTitle":"unregistered_taxonomy_for_object_type","componentLink":"/reference/hooks/unregistered_taxonomy_for_object_type","private":"","deprecated":""},{"componentTitle":"update_post_term_count_statuses","componentLink":"/reference/hooks/update_post_term_count_statuses","private":"","deprecated":""},{"componentTitle":"wp_get_object_terms","componentLink":"/reference/hooks/wp_get_object_terms","private":"","deprecated":""},{"componentTitle":"wp_get_object_terms_args","componentLink":"/reference/hooks/wp_get_object_terms_args","private":"","deprecated":""},{"componentTitle":"wp_insert_term_data","componentLink":"/reference/hooks/wp_insert_term_data","private":"","deprecated":""},{"componentTitle":"wp_insert_term_duplicate_term_check","componentLink":"/reference/hooks/wp_insert_term_duplicate_term_check","private":"","deprecated":""},{"componentTitle":"wp_unique_term_slug","componentLink":"/reference/hooks/wp_unique_term_slug","private":"","deprecated":""},{"componentTitle":"wp_unique_term_slug_is_bad_slug","componentLink":"/reference/hooks/wp_unique_term_slug_is_bad_slug","private":"","deprecated":""},{"componentTitle":"wp_update_term_data","componentLink":"/reference/hooks/wp_update_term_data","private":"","deprecated":""},{"componentTitle":"wp_update_term_parent","componentLink":"/reference/hooks/wp_update_term_parent","private":"","deprecated":""},{"componentTitle":"{$taxonomy}_{$field}","componentLink":"/reference/hooks/taxonomy_field","private":"","deprecated":""},{"componentTitle":"{$taxonomy}_{$field}_rss","componentLink":"/reference/hooks/taxonomy_field_rss","private":"","deprecated":""}],"Function":[{"componentTitle":"add_term_meta()","componentLink":"/reference/functions/add_term_meta","private":"","deprecated":""},{"componentTitle":"clean_object_term_cache()","componentLink":"/reference/functions/clean_object_term_cache","private":"","deprecated":""},{"componentTitle":"clean_taxonomy_cache()","componentLink":"/reference/functions/clean_taxonomy_cache","private":"","deprecated":""},{"componentTitle":"clean_term_cache()","componentLink":"/reference/functions/clean_term_cache","private":"","deprecated":""},{"componentTitle":"create_initial_taxonomies()","componentLink":"/reference/functions/create_initial_taxonomies","private":"","deprecated":""},{"componentTitle":"delete_term_meta()","componentLink":"/reference/functions/delete_term_meta","private":"","deprecated":""},{"componentTitle":"get_ancestors()","componentLink":"/reference/functions/get_ancestors","private":"","deprecated":""},{"componentTitle":"get_object_taxonomies()","componentLink":"/reference/functions/get_object_taxonomies","private":"","deprecated":""},{"componentTitle":"get_object_term_cache()","componentLink":"/reference/functions/get_object_term_cache","private":"","deprecated":""},{"componentTitle":"get_objects_in_term()","componentLink":"/reference/functions/get_objects_in_term","private":"","deprecated":""},{"componentTitle":"get_post_taxonomies()","componentLink":"/reference/functions/get_post_taxonomies","private":"","deprecated":""},{"componentTitle":"get_tax_sql()","componentLink":"/reference/functions/get_tax_sql","private":"","deprecated":""},{"componentTitle":"get_taxonomies()","componentLink":"/reference/functions/get_taxonomies","private":"","deprecated":""},{"componentTitle":"get_taxonomy_labels()","componentLink":"/reference/functions/get_taxonomy_labels","private":"","deprecated":""},{"componentTitle":"get_taxonomy()","componentLink":"/reference/functions/get_taxonomy","private":"","deprecated":""},{"componentTitle":"get_term_by()","componentLink":"/reference/functions/get_term_by","private":"","deprecated":""},{"componentTitle":"get_term_children()","componentLink":"/reference/functions/get_term_children","private":"","deprecated":""},{"componentTitle":"get_term_field()","componentLink":"/reference/functions/get_term_field","private":"","deprecated":""},{"componentTitle":"get_term_link()","componentLink":"/reference/functions/get_term_link","private":"","deprecated":""},{"componentTitle":"get_term_meta()","componentLink":"/reference/functions/get_term_meta","private":"","deprecated":""},{"componentTitle":"get_term_to_edit()","componentLink":"/reference/functions/get_term_to_edit","private":"","deprecated":""},{"componentTitle":"get_term()","componentLink":"/reference/functions/get_term","private":"","deprecated":""},{"componentTitle":"get_terms()","componentLink":"/reference/functions/get_terms","private":"","deprecated":""},{"componentTitle":"get_the_taxonomies()","componentLink":"/reference/functions/get_the_taxonomies","private":"","deprecated":""},{"componentTitle":"has_term_meta()","componentLink":"/reference/functions/has_term_meta","private":"","deprecated":""},{"componentTitle":"is_object_in_taxonomy()","componentLink":"/reference/functions/is_object_in_taxonomy","private":"","deprecated":""},{"componentTitle":"is_object_in_term()","componentLink":"/reference/functions/is_object_in_term","private":"","deprecated":""},{"componentTitle":"is_taxonomy_hierarchical()","componentLink":"/reference/functions/is_taxonomy_hierarchical","private":"","deprecated":""},{"componentTitle":"is_taxonomy_viewable()","componentLink":"/reference/functions/is_taxonomy_viewable","private":"","deprecated":""},{"componentTitle":"register_taxonomy_for_object_type()","componentLink":"/reference/functions/register_taxonomy_for_object_type","private":"","deprecated":""},{"componentTitle":"register_taxonomy()","componentLink":"/reference/functions/register_taxonomy","private":"","deprecated":""},{"componentTitle":"register_term_meta()","componentLink":"/reference/functions/register_term_meta","private":"","deprecated":""},{"componentTitle":"sanitize_term_field()","componentLink":"/reference/functions/sanitize_term_field","private":"","deprecated":""},{"componentTitle":"sanitize_term()","componentLink":"/reference/functions/sanitize_term","private":"","deprecated":""},{"componentTitle":"taxonomy_exists()","componentLink":"/reference/functions/taxonomy_exists","private":"","deprecated":""},{"componentTitle":"term_exists()","componentLink":"/reference/functions/term_exists","private":"","deprecated":""},{"componentTitle":"term_is_ancestor_of()","componentLink":"/reference/functions/term_is_ancestor_of","private":"","deprecated":""},{"componentTitle":"the_taxonomies()","componentLink":"/reference/functions/the_taxonomies","private":"","deprecated":""},{"componentTitle":"unregister_taxonomy_for_object_type()","componentLink":"/reference/functions/unregister_taxonomy_for_object_type","private":"","deprecated":""},{"componentTitle":"unregister_taxonomy()","componentLink":"/reference/functions/unregister_taxonomy","private":"","deprecated":""},{"componentTitle":"unregister_term_meta()","componentLink":"/reference/functions/unregister_term_meta","private":"","deprecated":""},{"componentTitle":"update_object_term_cache()","componentLink":"/reference/functions/update_object_term_cache","private":"","deprecated":""},{"componentTitle":"update_term_cache()","componentLink":"/reference/functions/update_term_cache","private":"","deprecated":""},{"componentTitle":"update_term_meta()","componentLink":"/reference/functions/update_term_meta","private":"","deprecated":""},{"componentTitle":"update_termmeta_cache()","componentLink":"/reference/functions/update_termmeta_cache","private":"","deprecated":""},{"componentTitle":"wp_add_object_terms()","componentLink":"/reference/functions/wp_add_object_terms","private":"","deprecated":""},{"componentTitle":"wp_cache_set_terms_last_changed()","componentLink":"/reference/functions/wp_cache_set_terms_last_changed","private":"","deprecated":""},{"componentTitle":"wp_check_term_hierarchy_for_loops()","componentLink":"/reference/functions/wp_check_term_hierarchy_for_loops","private":"","deprecated":"","active":"active"},{"componentTitle":"wp_check_term_meta_support_prefilter()","componentLink":"/reference/functions/wp_check_term_meta_support_prefilter","private":"","deprecated":""},{"componentTitle":"wp_count_terms()","componentLink":"/reference/functions/wp_count_terms","private":"","deprecated":""},{"componentTitle":"wp_defer_term_counting()","componentLink":"/reference/functions/wp_defer_term_counting","private":"","deprecated":""},{"componentTitle":"wp_delete_category()","componentLink":"/reference/functions/wp_delete_category","private":"","deprecated":""},{"componentTitle":"wp_delete_object_term_relationships()","componentLink":"/reference/functions/wp_delete_object_term_relationships","private":"","deprecated":""},{"componentTitle":"wp_delete_term()","componentLink":"/reference/functions/wp_delete_term","private":"","deprecated":""},{"componentTitle":"wp_get_object_terms()","componentLink":"/reference/functions/wp_get_object_terms","private":"","deprecated":""},{"componentTitle":"wp_get_split_term()","componentLink":"/reference/functions/wp_get_split_term","private":"","deprecated":""},{"componentTitle":"wp_get_split_terms()","componentLink":"/reference/functions/wp_get_split_terms","private":"","deprecated":""},{"componentTitle":"wp_get_term_taxonomy_parent_id()","componentLink":"/reference/functions/wp_get_term_taxonomy_parent_id","private":"","deprecated":""},{"componentTitle":"wp_insert_term()","componentLink":"/reference/functions/wp_insert_term","private":"","deprecated":""},{"componentTitle":"wp_remove_object_terms()","componentLink":"/reference/functions/wp_remove_object_terms","private":"","deprecated":""},{"componentTitle":"wp_set_object_terms()","componentLink":"/reference/functions/wp_set_object_terms","private":"","deprecated":""},{"componentTitle":"wp_term_is_shared()","componentLink":"/reference/functions/wp_term_is_shared","private":"","deprecated":""},{"componentTitle":"wp_unique_term_slug()","componentLink":"/reference/functions/wp_unique_term_slug","private":"","deprecated":""},{"componentTitle":"wp_update_term_count_now()","componentLink":"/reference/functions/wp_update_term_count_now","private":"","deprecated":""},{"componentTitle":"wp_update_term_count()","componentLink":"/reference/functions/wp_update_term_count","private":"","deprecated":""},{"componentTitle":"wp_update_term()","componentLink":"/reference/functions/wp_update_term","private":"","deprecated":""},{"componentTitle":"_get_term_children()","componentLink":"/reference/functions/_get_term_children","private":"private","deprecated":""},{"componentTitle":"_get_term_hierarchy()","componentLink":"/reference/functions/_get_term_hierarchy","private":"private","deprecated":""},{"componentTitle":"_pad_term_counts()","componentLink":"/reference/functions/_pad_term_counts","private":"private","deprecated":""},{"componentTitle":"_prime_term_caches()","componentLink":"/reference/functions/_prime_term_caches","private":"private","deprecated":""},{"componentTitle":"_update_generic_term_count()","componentLink":"/reference/functions/_update_generic_term_count","private":"","deprecated":""},{"componentTitle":"_update_post_term_count()","componentLink":"/reference/functions/_update_post_term_count","private":"private","deprecated":""},{"componentTitle":"_wp_batch_split_terms()","componentLink":"/reference/functions/_wp_batch_split_terms","private":"","deprecated":""}]}},"__N_SSG":true}