-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'];
+
+ /**
+ * Filter the taxonomy used to retrieve terms when calling {@see get_categories()}.
+ *
+ * @since 2.7.0
+ *
+ * @param string $taxonomy Taxonomy to retrieve terms from.
+ * @param array $args An array of arguments. See {@see get_terms()}.
+ */
+ $taxonomy = apply_filters( 'get_categories_taxonomy', $taxonomy, $args );
+
+ // Back compat
+ if ( isset($args['type']) && 'link' == $args['type'] ) {
+ _deprecated_argument( __FUNCTION__, '3.0', '' );
+ $taxonomy = $args['taxonomy'] = 'link_category';
+ }