-
-function get_all_category_ids() {
- global $wpdb;
-
- if ( ! $cat_ids = wp_cache_get('all_category_ids', 'category') ) {
- $cat_ids = get_terms('category', 'fields=ids&get=all');
- wp_cache_add('all_category_ids', $cat_ids, 'category');
+/**
+ * Taxonomy API: Core category-specific functionality
+ *
+ * @package WordPress
+ * @subpackage Taxonomy
+ */
+
+/**
+ * Retrieve list of category objects.
+ *
+ * If you change the type to 'link' in the arguments, then the link categories
+ * will be returned instead. Also all categories will be updated to be backward
+ * compatible with pre-2.3 plugins and themes.
+ *
+ * @since 2.1.0
+ * @see get_terms() Type of arguments that can be changed.
+ *
+ * @param string|array $args {
+ * Optional. Arguments to retrieve categories. See get_terms() for additional options.
+ *
+ * @type string $taxonomy Taxonomy to retrieve terms for. In this case, default 'category'.
+ * }
+ * @return array List of categories.
+ */
+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';