From 3ba117a8abc64b844df8f32cc1d768e44a9061e5 Mon Sep 17 00:00:00 2001 From: Jonny Harris Date: Thu, 24 Mar 2022 10:24:52 +0000 Subject: [PATCH] Taxonomy: Introduce `term_exists_default_query_args` filter. In [52921] `term_exists` was converted to use `get_terms`. This change adds a filter called `term_exists_default_query_args` to the `term_exists` function to allow developers to modify the arguments passed to `get_terms` before the query is run. Props Chouby, Spacedmonkey, peterwilsoncc. Fixes #55439. git-svn-id: https://develop.svn.wordpress.org/trunk@52987 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/taxonomy.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/wp-includes/taxonomy.php b/src/wp-includes/taxonomy.php index 6c006fc446..89eba0ba0d 100644 --- a/src/wp-includes/taxonomy.php +++ b/src/wp-includes/taxonomy.php @@ -1559,6 +1559,18 @@ function term_exists( $term, $taxonomy = '', $parent = null ) { $defaults['fields'] = 'all'; } + /** + * Filters default arguments for checking if term exists. + * + * @since 6.0.0 + * + * @param array $defaults An array of arguments for term_exists. + * @param int|string $term The term to check. Accepts term ID, slug, or name. + * @param string $taxonomy The taxonomy name to use. An empty string indicates the search is against all taxonomies. + * @param int|null $parent ID of parent term under which to confine the exists search. Null indicates the search is unconfined. + */ + $defaults = apply_filters( 'term_exists_default_query_args', $defaults, $term, $taxonomy, $parent ); + if ( is_int( $term ) ) { if ( 0 === $term ) { return 0;