- $taxonomy = apply_filters( 'get_categories_taxonomy', 'category', $args );
- if ( 'link' == $args['type'] )
- $taxonomy = 'link_category';
- $categories = (array) get_terms( $taxonomy, $args );
+ $taxonomy = $args['taxonomy'];
+
+ /**
+ * Filters the taxonomy used to retrieve terms when calling get_categories().
+ *
+ * @since 2.7.0
+ *
+ * @param string $taxonomy Taxonomy to retrieve terms from.
+ * @param array $args An array of arguments. See get_terms().
+ */
+ $taxonomy = apply_filters( 'get_categories_taxonomy', $taxonomy, $args );
+
+ // Back compat
+ if ( isset($args['type']) && 'link' == $args['type'] ) {
+ /* translators: 1: "type => link", 2: "taxonomy => link_category" alternative */
+ _deprecated_argument( __FUNCTION__, '3.0.0',
+ sprintf( __( '%1$s is deprecated. Use %2$s instead.' ),
+ '<code>type => link</code>',
+ '<code>taxonomy => link_category</code>'
+ )
+ );
+ $taxonomy = $args['taxonomy'] = 'link_category';
+ }
+
+ $categories = get_terms( $taxonomy, $args );