Projects : mp-wp : mp-wp_svg-screenshots-and-errorreporting-r2
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) { |
22 | $id = is_term($cat_name, 'category'); |
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) ) |
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 | * {@internal Missing Short Description}} |
84 | * |
85 | * @since unknown |
86 | * |
87 | * @param unknown_type $cat_ID |
88 | * @return unknown |
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 | * {@internal Missing Short Description}} |
103 | * |
104 | * @since unknown |
105 | * |
106 | * @param unknown_type $catarr |
107 | * @param unknown_type $wp_error |
108 | * @return unknown |
109 | */ |
110 | function wp_insert_category($catarr, $wp_error = false) { |
111 | $cat_defaults = array('cat_ID' => 0, '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, 'category', $args); |
146 | else |
147 | $cat_ID = wp_insert_term($cat_name, 'category', $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 | * {@internal Missing Short Description}} |
161 | * |
162 | * @since unknown |
163 | * |
164 | * @param unknown_type $catarr |
165 | * @return unknown |
166 | */ |
167 | function wp_update_category($catarr) { |
168 | $cat_ID = (int) $catarr['cat_ID']; |
169 | |
170 | if ( isset($catarr['category_parent']) && ($cat_ID == $catarr['category_parent']) ) |
171 | return false; |
172 | |
173 | // First, get all of the original fields |
174 | $category = get_category($cat_ID, ARRAY_A); |
175 | |
176 | // Escape data pulled from DB. |
177 | $category = add_magic_quotes($category); |
178 | |
179 | // Merge old and new fields with new fields overwriting old ones. |
180 | $catarr = array_merge($category, $catarr); |
181 | |
182 | return wp_insert_category($catarr); |
183 | } |
184 | |
185 | // |
186 | // Tags |
187 | // |
188 | |
189 | /** |
190 | * {@internal Missing Short Description}} |
191 | * |
192 | * @since unknown |
193 | * |
194 | * @param unknown_type $post_id |
195 | * @return unknown |
196 | */ |
197 | function get_tags_to_edit( $post_id ) { |
198 | $post_id = (int) $post_id; |
199 | if ( !$post_id ) |
200 | return false; |
201 | |
202 | $tags = wp_get_post_tags($post_id); |
203 | |
204 | if ( !$tags ) |
205 | return false; |
206 | |
207 | foreach ( $tags as $tag ) |
208 | $tag_names[] = $tag->name; |
209 | $tags_to_edit = join( ',', $tag_names ); |
210 | $tags_to_edit = attribute_escape( $tags_to_edit ); |
211 | $tags_to_edit = apply_filters( 'tags_to_edit', $tags_to_edit ); |
212 | return $tags_to_edit; |
213 | } |
214 | |
215 | /** |
216 | * {@internal Missing Short Description}} |
217 | * |
218 | * @since unknown |
219 | * |
220 | * @param unknown_type $tag_name |
221 | * @return unknown |
222 | */ |
223 | function tag_exists($tag_name) { |
224 | return is_term($tag_name, 'post_tag'); |
225 | } |
226 | |
227 | /** |
228 | * {@internal Missing Short Description}} |
229 | * |
230 | * @since unknown |
231 | * |
232 | * @param unknown_type $tag_name |
233 | * @return unknown |
234 | */ |
235 | function wp_create_tag($tag_name) { |
236 | if ( $id = tag_exists($tag_name) ) |
237 | return $id; |
238 | |
239 | return wp_insert_term($tag_name, 'post_tag'); |
240 | } |
241 | |
242 | ?> |