From 14cd5cf3eda9d8fbf686a137e889b8f59651b973 Mon Sep 17 00:00:00 2001 From: Drew Jaynes Date: Wed, 4 Nov 2015 16:02:12 +0000 Subject: [PATCH] Taxonomy: Introduce the dynamic `taxonomy_labels_{$taxonomy}` filter, which can be used to manipulate the labels for a given taxonomy. The addition of this hook brings parity with the earlier-introduced `post_type_labels_{$post_type}` filter, which allows for similarly manipulating labels for a given post type. Note: It isn't possible to unset or remove default labels via either of these hooks, only to overwrite. This is because WordPress relies on defaults being set for use in various UIs and admin experiences. Props flixos90. Fixes #34554. git-svn-id: https://develop.svn.wordpress.org/trunk@35504 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/taxonomy-functions.php | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/taxonomy-functions.php b/src/wp-includes/taxonomy-functions.php index 706caf1bf6..592966b681 100644 --- a/src/wp-includes/taxonomy-functions.php +++ b/src/wp-includes/taxonomy-functions.php @@ -540,7 +540,29 @@ function get_taxonomy_labels( $tax ) { ); $nohier_vs_hier_defaults['menu_name'] = $nohier_vs_hier_defaults['name']; - return _get_custom_object_labels( $tax, $nohier_vs_hier_defaults ); + $labels = _get_custom_object_labels( $tax, $nohier_vs_hier_defaults ); + + $taxonomy = $tax->name; + + $default_labels = clone $labels; + + /** + * Filter the labels of a specific taxonomy. + * + * The dynamic portion of the hook name, `$taxonomy`, refers to the taxonomy slug. + * + * @since 4.4.0 + * + * @see get_taxonomy_labels() for the full list of taxonomy labels. + * + * @param object $labels Object with labels for the taxonomy as member variables. + */ + $labels = apply_filters( "taxonomy_labels_{$taxonomy}", $labels ); + + // Ensure that the filtered labels contain all required default values. + $labels = (object) array_merge( (array) $default_labels, (array) $labels ); + + return $labels; } /**