-function &get_categories($args = '') {
- $defaults = array('type' => 'category');
- $args = wp_parse_args($args, $defaults);
+function get_categories( $args = '' ) {
+ $defaults = array( 'taxonomy' => 'category' );
+ $args = wp_parse_args( $args, $defaults );
+
+ $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';
+ }