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