[ Root ] [ Search ] [ Index ]

PHP Cross Reference of WordPress 3.0

Provided by Yoast

title

Body

[close]

/wp-admin/includes/ -> taxonomy.php (source)

   1  <?php
   2  /**
   3   * WordPress Taxonomy Administration API.
   4   *
   5   * @package WordPress
   6   * @subpackage Administration
   7   */
   8  
   9  //
  10  // Category
  11  //
  12  
  13  /**
  14   * {@internal Missing Short Description}}
  15   *
  16   * @since unknown
  17   *
  18   * @param unknown_type $cat_name
  19   * @return unknown
  20   */
  21  function category_exists($cat_name, $parent = 0) {
  22      $id = term_exists($cat_name, 'category', $parent);
  23      if ( is_array($id) )
  24          $id = $id['term_id'];
  25      return $id;
  26  }
  27  
  28  /**
  29   * {@internal Missing Short Description}}
  30   *
  31   * @since unknown
  32   *
  33   * @param unknown_type $id
  34   * @return unknown
  35   */
  36  function get_category_to_edit( $id ) {
  37      $category = get_category( $id, OBJECT, 'edit' );
  38      return $category;
  39  }
  40  
  41  /**
  42   * {@internal Missing Short Description}}
  43   *
  44   * @since unknown
  45   *
  46   * @param unknown_type $cat_name
  47   * @param unknown_type $parent
  48   * @return unknown
  49   */
  50  function wp_create_category( $cat_name, $parent = 0 ) {
  51      if ( $id = category_exists($cat_name, $parent) )
  52          return $id;
  53  
  54      return wp_insert_category( array('cat_name' => $cat_name, 'category_parent' => $parent) );
  55  }
  56  
  57  /**
  58   * {@internal Missing Short Description}}
  59   *
  60   * @since unknown
  61   *
  62   * @param unknown_type $categories
  63   * @param unknown_type $post_id
  64   * @return unknown
  65   */
  66  function wp_create_categories($categories, $post_id = '') {
  67      $cat_ids = array ();
  68      foreach ($categories as $category) {
  69          if ($id = category_exists($category))
  70              $cat_ids[] = $id;
  71          else
  72              if ($id = wp_create_category($category))
  73                  $cat_ids[] = $id;
  74      }
  75  
  76      if ( $post_id )
  77          wp_set_post_categories($post_id, $cat_ids);
  78  
  79      return $cat_ids;
  80  }
  81  
  82  /**
  83   * Deletes one existing category.
  84   *
  85   * @since 2.0.0
  86   *
  87   * @param int $cat_ID
  88   * @return mixed Returns true if completes delete action; false if term doesnt exist; Zero on attempted deletion of default Category; WP_Error object is also a possibility.
  89   */
  90  function wp_delete_category($cat_ID) {
  91      $cat_ID = (int) $cat_ID;
  92      $default = get_option('default_category');
  93  
  94      // Don't delete the default cat
  95      if ( $cat_ID == $default )
  96          return 0;
  97  
  98      return wp_delete_term($cat_ID, 'category', array('default' => $default));
  99  }
 100  
 101  /**
 102   * Updates an existing Category or creates a new Category.
 103   *
 104   * @since 2.0.0
 105   *
 106   * @param mixed $catarr See defaults below. Set 'cat_ID' to a non-zero value to update an existing category. The 'taxonomy' key was added in 3.0.0.
 107   * @param bool $wp_error Optional, since 2.5.0. Set this to true if the caller handles WP_Error return values.
 108   * @return int|object The ID number of the new or updated Category on success.  Zero or a WP_Error on failure, depending on param $wp_error.
 109   */
 110  function wp_insert_category($catarr, $wp_error = false) {
 111      $cat_defaults = array('cat_ID' => 0, 'taxonomy' => 'category', 'cat_name' => '', 'category_description' => '', 'category_nicename' => '', 'category_parent' => '');
 112      $catarr = wp_parse_args($catarr, $cat_defaults);
 113      extract($catarr, EXTR_SKIP);
 114  
 115      if ( trim( $cat_name ) == '' ) {
 116          if ( ! $wp_error )
 117              return 0;
 118          else
 119              return new WP_Error( 'cat_name', __('You did not enter a category name.') );
 120      }
 121  
 122      $cat_ID = (int) $cat_ID;
 123  
 124      // Are we updating or creating?
 125      if ( !empty ($cat_ID) )
 126          $update = true;
 127      else
 128          $update = false;
 129  
 130      $name = $cat_name;
 131      $description = $category_description;
 132      $slug = $category_nicename;
 133      $parent = $category_parent;
 134  
 135      $parent = (int) $parent;
 136      if ( $parent < 0 )
 137          $parent = 0;
 138  
 139      if ( empty($parent) || !category_exists( $parent ) || ($cat_ID && cat_is_ancestor_of($cat_ID, $parent) ) )
 140          $parent = 0;
 141  
 142      $args = compact('name', 'slug', 'parent', 'description');
 143  
 144      if ( $update )
 145          $cat_ID = wp_update_term($cat_ID, $taxonomy, $args);
 146      else
 147          $cat_ID = wp_insert_term($cat_name, $taxonomy, $args);
 148  
 149      if ( is_wp_error($cat_ID) ) {
 150          if ( $wp_error )
 151              return $cat_ID;
 152          else
 153              return 0;
 154      }
 155  
 156      return $cat_ID['term_id'];
 157  }
 158  
 159  /**
 160   * Aliases wp_insert_category() with minimal args.
 161   *
 162   * If you want to update only some fields of an existing category, call this
 163   * function with only the new values set inside $catarr.
 164   *
 165   * @since 2.0.0
 166   *
 167   * @param array $catarr The 'cat_ID' value is required.  All other keys are optional.
 168   * @return int|bool The ID number of the new or updated Category on success. Zero or FALSE on failure.
 169   */
 170  function wp_update_category($catarr) {
 171      $cat_ID = (int) $catarr['cat_ID'];
 172  
 173      if ( isset($catarr['category_parent']) && ($cat_ID == $catarr['category_parent']) )
 174          return false;
 175  
 176      // First, get all of the original fields
 177      $category = get_category($cat_ID, ARRAY_A);
 178  
 179      // Escape data pulled from DB.
 180      $category = add_magic_quotes($category);
 181  
 182      // Merge old and new fields with new fields overwriting old ones.
 183      $catarr = array_merge($category, $catarr);
 184  
 185      return wp_insert_category($catarr);
 186  }
 187  
 188  //
 189  // Tags
 190  //
 191  
 192  /**
 193   * {@internal Missing Short Description}}
 194   *
 195   * @since unknown
 196   *
 197   * @param unknown_type $post_id
 198   * @return unknown
 199   */
 200  function get_tags_to_edit( $post_id, $taxonomy = 'post_tag' ) {
 201      return get_terms_to_edit( $post_id, $taxonomy);
 202  }
 203  
 204  /**
 205   * {@internal Missing Short Description}}
 206   *
 207   * @since unknown
 208   *
 209   * @param unknown_type $post_id
 210   * @return unknown
 211   */
 212  function get_terms_to_edit( $post_id, $taxonomy = 'post_tag' ) {
 213      $post_id = (int) $post_id;
 214      if ( !$post_id )
 215          return false;
 216  
 217      $tags = wp_get_post_terms($post_id, $taxonomy, array());
 218  
 219      if ( !$tags )
 220          return false;
 221  
 222      if ( is_wp_error($tags) )
 223          return $tags;
 224  
 225      foreach ( $tags as $tag )
 226          $tag_names[] = $tag->name;
 227      $tags_to_edit = join( ',', $tag_names );
 228      $tags_to_edit = esc_attr( $tags_to_edit );
 229      $tags_to_edit = apply_filters( 'terms_to_edit', $tags_to_edit, $taxonomy );
 230  
 231      return $tags_to_edit;
 232  }
 233  
 234  /**
 235   * {@internal Missing Short Description}}
 236   *
 237   * @since unknown
 238   *
 239   * @param unknown_type $tag_name
 240   * @return unknown
 241   */
 242  function tag_exists($tag_name) {
 243      return term_exists($tag_name, 'post_tag');
 244  }
 245  
 246  /**
 247   * {@internal Missing Short Description}}
 248   *
 249   * @since unknown
 250   *
 251   * @param unknown_type $tag_name
 252   * @return unknown
 253   */
 254  function wp_create_tag($tag_name) {
 255      return wp_create_term( $tag_name, 'post_tag');
 256  }
 257  
 258  /**
 259   * {@internal Missing Short Description}}
 260   *
 261   * @since unknown
 262   *
 263   * @param unknown_type $tag_name
 264   * @return unknown
 265   */
 266  function wp_create_term($tag_name, $taxonomy = 'post_tag') {
 267      if ( $id = term_exists($tag_name, $taxonomy) )
 268          return $id;
 269  
 270      return wp_insert_term($tag_name, $taxonomy);
 271  }


Generated: Thu Oct 14 05:11:12 2010 Cross-referenced by PHPXref 0.7