~canonical-sysadmins/wordpress/4.7.4

« back to all changes in this revision

Viewing changes to wp-admin/edit-tags.php

  • Committer: Jacek Nykis
  • Date: 2015-01-05 16:17:05 UTC
  • Revision ID: jacek.nykis@canonical.com-20150105161705-w544l1h5mcg7u4w9
Initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * Edit Tags Administration Screen.
 
4
 *
 
5
 * @package WordPress
 
6
 * @subpackage Administration
 
7
 */
 
8
 
 
9
/** WordPress Administration Bootstrap */
 
10
require_once( dirname( __FILE__ ) . '/admin.php' );
 
11
 
 
12
if ( ! $taxnow )
 
13
        wp_die( __( 'Invalid taxonomy' ) );
 
14
 
 
15
$tax = get_taxonomy( $taxnow );
 
16
 
 
17
if ( ! $tax )
 
18
        wp_die( __( 'Invalid taxonomy' ) );
 
19
 
 
20
if ( ! current_user_can( $tax->cap->manage_terms ) )
 
21
        wp_die( __( 'Cheatin&#8217; uh?' ) );
 
22
 
 
23
$wp_list_table = _get_list_table('WP_Terms_List_Table');
 
24
$pagenum = $wp_list_table->get_pagenum();
 
25
 
 
26
$title = $tax->labels->name;
 
27
 
 
28
if ( 'post' != $post_type ) {
 
29
        $parent_file = ( 'attachment' == $post_type ) ? 'upload.php' : "edit.php?post_type=$post_type";
 
30
        $submenu_file = "edit-tags.php?taxonomy=$taxonomy&amp;post_type=$post_type";
 
31
} else if ( 'link_category' == $tax->name ) {
 
32
        $parent_file = 'link-manager.php';
 
33
        $submenu_file = 'edit-tags.php?taxonomy=link_category';
 
34
} else {
 
35
        $parent_file = 'edit.php';
 
36
        $submenu_file = "edit-tags.php?taxonomy=$taxonomy";
 
37
}
 
38
 
 
39
add_screen_option( 'per_page', array( 'label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page' ) );
 
40
 
 
41
switch ( $wp_list_table->current_action() ) {
 
42
 
 
43
case 'add-tag':
 
44
 
 
45
        check_admin_referer( 'add-tag', '_wpnonce_add-tag' );
 
46
 
 
47
        if ( !current_user_can( $tax->cap->edit_terms ) )
 
48
                wp_die( __( 'Cheatin&#8217; uh?' ) );
 
49
 
 
50
        $ret = wp_insert_term( $_POST['tag-name'], $taxonomy, $_POST );
 
51
        $location = 'edit-tags.php?taxonomy=' . $taxonomy;
 
52
        if ( 'post' != $post_type )
 
53
                $location .= '&post_type=' . $post_type;
 
54
 
 
55
        if ( $referer = wp_get_original_referer() ) {
 
56
                if ( false !== strpos( $referer, 'edit-tags.php' ) )
 
57
                        $location = $referer;
 
58
        }
 
59
 
 
60
        if ( $ret && !is_wp_error( $ret ) )
 
61
                $location = add_query_arg( 'message', 1, $location );
 
62
        else
 
63
                $location = add_query_arg( 'message', 4, $location );
 
64
        wp_redirect( $location );
 
65
        exit;
 
66
 
 
67
case 'delete':
 
68
        $location = 'edit-tags.php?taxonomy=' . $taxonomy;
 
69
        if ( 'post' != $post_type )
 
70
                $location .= '&post_type=' . $post_type;
 
71
        if ( $referer = wp_get_referer() ) {
 
72
                if ( false !== strpos( $referer, 'edit-tags.php' ) )
 
73
                        $location = $referer;
 
74
        }
 
75
 
 
76
        if ( !isset( $_REQUEST['tag_ID'] ) ) {
 
77
                wp_redirect( $location );
 
78
                exit;
 
79
        }
 
80
 
 
81
        $tag_ID = (int) $_REQUEST['tag_ID'];
 
82
        check_admin_referer( 'delete-tag_' . $tag_ID );
 
83
 
 
84
        if ( !current_user_can( $tax->cap->delete_terms ) )
 
85
                wp_die( __( 'Cheatin&#8217; uh?' ) );
 
86
 
 
87
        wp_delete_term( $tag_ID, $taxonomy );
 
88
 
 
89
        $location = add_query_arg( 'message', 2, $location );
 
90
        wp_redirect( $location );
 
91
        exit;
 
92
 
 
93
case 'bulk-delete':
 
94
        check_admin_referer( 'bulk-tags' );
 
95
 
 
96
        if ( !current_user_can( $tax->cap->delete_terms ) )
 
97
                wp_die( __( 'Cheatin&#8217; uh?' ) );
 
98
 
 
99
        $tags = (array) $_REQUEST['delete_tags'];
 
100
        foreach ( $tags as $tag_ID ) {
 
101
                wp_delete_term( $tag_ID, $taxonomy );
 
102
        }
 
103
 
 
104
        $location = 'edit-tags.php?taxonomy=' . $taxonomy;
 
105
        if ( 'post' != $post_type )
 
106
                $location .= '&post_type=' . $post_type;
 
107
        if ( $referer = wp_get_referer() ) {
 
108
                if ( false !== strpos( $referer, 'edit-tags.php' ) )
 
109
                        $location = $referer;
 
110
        }
 
111
 
 
112
        $location = add_query_arg( 'message', 6, $location );
 
113
        wp_redirect( $location );
 
114
        exit;
 
115
 
 
116
case 'edit':
 
117
        $title = $tax->labels->edit_item;
 
118
 
 
119
        $tag_ID = (int) $_REQUEST['tag_ID'];
 
120
 
 
121
        $tag = get_term( $tag_ID, $taxonomy, OBJECT, 'edit' );
 
122
        if ( ! $tag )
 
123
                wp_die( __( 'You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?' ) );
 
124
        require_once( ABSPATH . 'wp-admin/admin-header.php' );
 
125
        include( ABSPATH . 'wp-admin/edit-tag-form.php' );
 
126
 
 
127
break;
 
128
 
 
129
case 'editedtag':
 
130
        $tag_ID = (int) $_POST['tag_ID'];
 
131
        check_admin_referer( 'update-tag_' . $tag_ID );
 
132
 
 
133
        if ( !current_user_can( $tax->cap->edit_terms ) )
 
134
                wp_die( __( 'Cheatin&#8217; uh?' ) );
 
135
 
 
136
        $tag = get_term( $tag_ID, $taxonomy );
 
137
        if ( ! $tag )
 
138
                wp_die( __( 'You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?' ) );
 
139
 
 
140
        $ret = wp_update_term( $tag_ID, $taxonomy, $_POST );
 
141
 
 
142
        $location = 'edit-tags.php?taxonomy=' . $taxonomy;
 
143
        if ( 'post' != $post_type )
 
144
                $location .= '&post_type=' . $post_type;
 
145
 
 
146
        if ( $referer = wp_get_original_referer() ) {
 
147
                if ( false !== strpos( $referer, 'edit-tags.php' ) )
 
148
                        $location = $referer;
 
149
        }
 
150
 
 
151
        if ( $ret && !is_wp_error( $ret ) )
 
152
                $location = add_query_arg( 'message', 3, $location );
 
153
        else
 
154
                $location = add_query_arg( 'message', 5, $location );
 
155
 
 
156
        wp_redirect( $location );
 
157
        exit;
 
158
 
 
159
default:
 
160
if ( ! empty($_REQUEST['_wp_http_referer']) ) {
 
161
        $location = remove_query_arg( array('_wp_http_referer', '_wpnonce'), wp_unslash($_SERVER['REQUEST_URI']) );
 
162
 
 
163
        if ( ! empty( $_REQUEST['paged'] ) )
 
164
                $location = add_query_arg( 'paged', (int) $_REQUEST['paged'] );
 
165
 
 
166
        wp_redirect( $location );
 
167
        exit;
 
168
}
 
169
 
 
170
$wp_list_table->prepare_items();
 
171
$total_pages = $wp_list_table->get_pagination_arg( 'total_pages' );
 
172
 
 
173
if ( $pagenum > $total_pages && $total_pages > 0 ) {
 
174
        wp_redirect( add_query_arg( 'paged', $total_pages ) );
 
175
        exit;
 
176
}
 
177
 
 
178
wp_enqueue_script('admin-tags');
 
179
if ( current_user_can($tax->cap->edit_terms) )
 
180
        wp_enqueue_script('inline-edit-tax');
 
181
 
 
182
if ( 'category' == $taxonomy || 'link_category' == $taxonomy || 'post_tag' == $taxonomy  ) {
 
183
        $help ='';
 
184
        if ( 'category' == $taxonomy )
 
185
                $help = '<p>' . sprintf(__( 'You can use categories to define sections of your site and group related posts. The default category is &#8220;Uncategorized&#8221; until you change it in your <a href="%s">writing settings</a>.' ) , 'options-writing.php' ) . '</p>';
 
186
        elseif ( 'link_category' == $taxonomy )
 
187
                $help = '<p>' . __( 'You can create groups of links by using Link Categories. Link Category names must be unique and Link Categories are separate from the categories you use for posts.' ) . '</p>';
 
188
        else
 
189
                $help = '<p>' . __( 'You can assign keywords to your posts using <strong>tags</strong>. Unlike categories, tags have no hierarchy, meaning there&#8217;s no relationship from one tag to another.' ) . '</p>';
 
190
 
 
191
        if ( 'link_category' == $taxonomy )
 
192
                $help .= '<p>' . __( 'You can delete Link Categories in the Bulk Action pull-down, but that action does not delete the links within the category. Instead, it moves them to the default Link Category.' ) . '</p>';
 
193
        else
 
194
                $help .='<p>' . __( 'What&#8217;s the difference between categories and tags? Normally, tags are ad-hoc keywords that identify important information in your post (names, subjects, etc) that may or may not recur in other posts, while categories are pre-determined sections. If you think of your site like a book, the categories are like the Table of Contents and the tags are like the terms in the index.' ) . '</p>';
 
195
 
 
196
        get_current_screen()->add_help_tab( array(
 
197
                'id'      => 'overview',
 
198
                'title'   => __('Overview'),
 
199
                'content' => $help,
 
200
        ) );
 
201
 
 
202
        if ( 'category' == $taxonomy || 'post_tag' == $taxonomy ) {
 
203
                if ( 'category' == $taxonomy )
 
204
                        $help = '<p>' . __( 'When adding a new category on this screen, you&#8217;ll fill in the following fields:' ) . '</p>';
 
205
                else
 
206
                        $help = '<p>' . __( 'When adding a new tag on this screen, you&#8217;ll fill in the following fields:' ) . '</p>';
 
207
 
 
208
                $help .= '<ul>' .
 
209
                '<li>' . __( '<strong>Name</strong> - The name is how it appears on your site.' ) . '</li>';
 
210
 
 
211
                if ( ! global_terms_enabled() )
 
212
                        $help .= '<li>' . __( '<strong>Slug</strong> - The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.' ) . '</li>';
 
213
 
 
214
                if ( 'category' == $taxonomy )
 
215
                        $help .= '<li>' . __( '<strong>Parent</strong> - Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown.' ) . '</li>';
 
216
 
 
217
                $help .= '<li>' . __( '<strong>Description</strong> - The description is not prominent by default; however, some themes may display it.' ) . '</li>' .
 
218
                '</ul>' .
 
219
                '<p>' . __( 'You can change the display of this screen using the Screen Options tab to set how many items are displayed per screen and to display/hide columns in the table.' ) . '</p>';
 
220
 
 
221
                get_current_screen()->add_help_tab( array(
 
222
                        'id'      => 'adding-terms',
 
223
                        'title'   => 'category' == $taxonomy ? __( 'Adding Categories' ) : __( 'Adding Tags' ),
 
224
                        'content' => $help,
 
225
                ) );
 
226
        }
 
227
 
 
228
        $help = '<p><strong>' . __( 'For more information:' ) . '</strong></p>';
 
229
 
 
230
        if ( 'category' == $taxonomy )
 
231
                $help .= '<p>' . __( '<a href="http://codex.wordpress.org/Posts_Categories_Screen" target="_blank">Documentation on Categories</a>' ) . '</p>';
 
232
        elseif ( 'link_category' == $taxonomy )
 
233
                $help .= '<p>' . __( '<a href="http://codex.wordpress.org/Links_Link_Categories_Screen" target="_blank">Documentation on Link Categories</a>' ) . '</p>';
 
234
        else
 
235
                $help .= '<p>' . __( '<a href="http://codex.wordpress.org/Posts_Tags_Screen" target="_blank">Documentation on Tags</a>' ) . '</p>';
 
236
 
 
237
        $help .= '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>';
 
238
 
 
239
        get_current_screen()->set_help_sidebar( $help );
 
240
 
 
241
        unset( $help );
 
242
}
 
243
 
 
244
require_once( ABSPATH . 'wp-admin/admin-header.php' );
 
245
 
 
246
if ( !current_user_can($tax->cap->edit_terms) )
 
247
        wp_die( __('You are not allowed to edit this item.') );
 
248
 
 
249
$messages = array();
 
250
$messages['_item'] = array(
 
251
        0 => '', // Unused. Messages start at index 1.
 
252
        1 => __( 'Item added.' ),
 
253
        2 => __( 'Item deleted.' ),
 
254
        3 => __( 'Item updated.' ),
 
255
        4 => __( 'Item not added.' ),
 
256
        5 => __( 'Item not updated.' ),
 
257
        6 => __( 'Items deleted.' )
 
258
);
 
259
$messages['category'] = array(
 
260
        0 => '', // Unused. Messages start at index 1.
 
261
        1 => __( 'Category added.' ),
 
262
        2 => __( 'Category deleted.' ),
 
263
        3 => __( 'Category updated.' ),
 
264
        4 => __( 'Category not added.' ),
 
265
        5 => __( 'Category not updated.' ),
 
266
        6 => __( 'Categories deleted.' )
 
267
);
 
268
$messages['post_tag'] = array(
 
269
        0 => '', // Unused. Messages start at index 1.
 
270
        1 => __( 'Tag added.' ),
 
271
        2 => __( 'Tag deleted.' ),
 
272
        3 => __( 'Tag updated.' ),
 
273
        4 => __( 'Tag not added.' ),
 
274
        5 => __( 'Tag not updated.' ),
 
275
        6 => __( 'Tags deleted.' )
 
276
);
 
277
 
 
278
/**
 
279
 * Filter the messages displayed when a tag is updated.
 
280
 *
 
281
 * @since 3.7.0
 
282
 *
 
283
 * @param array $messages The messages to be displayed.
 
284
 */
 
285
$messages = apply_filters( 'term_updated_messages', $messages );
 
286
 
 
287
$message = false;
 
288
if ( isset( $_REQUEST['message'] ) && ( $msg = (int) $_REQUEST['message'] ) ) {
 
289
        if ( isset( $messages[ $taxonomy ][ $msg ] ) )
 
290
                $message = $messages[ $taxonomy ][ $msg ];
 
291
        elseif ( ! isset( $messages[ $taxonomy ] ) && isset( $messages['_item'][ $msg ] ) )
 
292
                $message = $messages['_item'][ $msg ];
 
293
}
 
294
 
 
295
?>
 
296
 
 
297
<div class="wrap nosubsub">
 
298
<h2><?php echo esc_html( $title );
 
299
if ( !empty($_REQUEST['s']) )
 
300
        printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( wp_unslash($_REQUEST['s']) ) ); ?>
 
301
</h2>
 
302
 
 
303
<?php if ( $message ) : ?>
 
304
<div id="message" class="updated"><p><?php echo $message; ?></p></div>
 
305
<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
 
306
endif; ?>
 
307
<div id="ajax-response"></div>
 
308
 
 
309
<form class="search-form" action="" method="get">
 
310
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy); ?>" />
 
311
<input type="hidden" name="post_type" value="<?php echo esc_attr($post_type); ?>" />
 
312
 
 
313
<?php $wp_list_table->search_box( $tax->labels->search_items, 'tag' ); ?>
 
314
 
 
315
</form>
 
316
<br class="clear" />
 
317
 
 
318
<div id="col-container">
 
319
 
 
320
<div id="col-right">
 
321
<div class="col-wrap">
 
322
<form id="posts-filter" action="" method="post">
 
323
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy); ?>" />
 
324
<input type="hidden" name="post_type" value="<?php echo esc_attr($post_type); ?>" />
 
325
 
 
326
<?php $wp_list_table->display(); ?>
 
327
 
 
328
<br class="clear" />
 
329
</form>
 
330
 
 
331
<?php if ( 'category' == $taxonomy ) : ?>
 
332
<div class="form-wrap">
 
333
<p>
 
334
        <?php
 
335
        /** This filter is documented in wp-includes/category-template.php */
 
336
        printf( __( '<strong>Note:</strong><br />Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong>.' ), apply_filters( 'the_category', get_cat_name( get_option( 'default_category') ) ) );
 
337
        ?>
 
338
</p>
 
339
<?php if ( current_user_can( 'import' ) ) : ?>
 
340
<p><?php printf(__('Categories can be selectively converted to tags using the <a href="%s">category to tag converter</a>.'), 'import.php') ?></p>
 
341
<?php endif; ?>
 
342
</div>
 
343
<?php elseif ( 'post_tag' == $taxonomy && current_user_can( 'import' ) ) : ?>
 
344
<div class="form-wrap">
 
345
<p><?php printf(__('Tags can be selectively converted to categories using the <a href="%s">tag to category converter</a>.'), 'import.php') ;?></p>
 
346
</div>
 
347
<?php endif;
 
348
 
 
349
/**
 
350
 * Fires after the taxonomy list table.
 
351
 *
 
352
 * The dynamic portion of the hook name, $taxonomy, refers to the taxonomy slug.
 
353
 *
 
354
 * @since 3.0.0
 
355
 *
 
356
 * @param string $taxonomy The taxonomy name.
 
357
 */
 
358
do_action( "after-{$taxonomy}-table", $taxonomy );
 
359
?>
 
360
 
 
361
</div>
 
362
</div><!-- /col-right -->
 
363
 
 
364
<div id="col-left">
 
365
<div class="col-wrap">
 
366
 
 
367
<?php
 
368
 
 
369
if ( !is_null( $tax->labels->popular_items ) ) {
 
370
        if ( current_user_can( $tax->cap->edit_terms ) )
 
371
                $tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'post_type' => $post_type, 'echo' => false, 'link' => 'edit' ) );
 
372
        else
 
373
                $tag_cloud = wp_tag_cloud( array( 'taxonomy' => $taxonomy, 'echo' => false ) );
 
374
 
 
375
        if ( $tag_cloud ) :
 
376
        ?>
 
377
<div class="tagcloud">
 
378
<h3><?php echo $tax->labels->popular_items; ?></h3>
 
379
<?php echo $tag_cloud; unset( $tag_cloud ); ?>
 
380
</div>
 
381
<?php
 
382
endif;
 
383
}
 
384
 
 
385
if ( current_user_can($tax->cap->edit_terms) ) {
 
386
        if ( 'category' == $taxonomy ) {
 
387
                /**
 
388
                 * Fires before the Add Category form.
 
389
                 *
 
390
                 * @since 2.1.0
 
391
                 * @deprecated 3.0.0 Use {$taxonomy}_pre_add_form instead.
 
392
                 *
 
393
                 * @param object $arg Optional arguments cast to an object.
 
394
                 */
 
395
                do_action( 'add_category_form_pre', (object) array( 'parent' => 0 ) );
 
396
        } elseif ( 'link_category' == $taxonomy ) {
 
397
                /**
 
398
                 * Fires before the link category form.
 
399
                 *
 
400
                 * @since 2.3.0
 
401
                 * @deprecated 3.0.0 Use {$taxonomy}_pre_add_form instead.
 
402
                 *
 
403
                 * @param object $arg Optional arguments cast to an object.
 
404
                 */
 
405
                do_action( 'add_link_category_form_pre', (object) array( 'parent' => 0 ) );
 
406
        } else {
 
407
                /**
 
408
                 * Fires before the Add Tag form.
 
409
                 *
 
410
                 * @since 2.5.0
 
411
                 * @deprecated 3.0.0 Use {$taxonomy}_pre_add_form instead.
 
412
                 *
 
413
                 * @param string $taxonomy The taxonomy slug.
 
414
                 */
 
415
                do_action( 'add_tag_form_pre', $taxonomy );
 
416
        }
 
417
 
 
418
        /**
 
419
         * Fires before the Add Term form for all taxonomies.
 
420
         *
 
421
         * The dynamic portion of the hook name, $taxonomy, refers to the taxonomy slug.
 
422
         *
 
423
         * @since 3.0.0
 
424
         *
 
425
         * @param string $taxonomy The taxonomy slug.
 
426
         */
 
427
        do_action( "{$taxonomy}_pre_add_form", $taxonomy );
 
428
?>
 
429
 
 
430
<div class="form-wrap">
 
431
<h3><?php echo $tax->labels->add_new_item; ?></h3>
 
432
<?php
 
433
/**
 
434
 * Fires at the beginning of the Add Tag form.
 
435
 *
 
436
 * The dynamic portion of the hook name, $taxonomy, refers to the taxonomy slug.
 
437
 *
 
438
 * @since 3.7.0
 
439
 */
 
440
?>
 
441
<form id="addtag" method="post" action="edit-tags.php" class="validate"<?php do_action( "{$taxonomy}_term_new_form_tag" ); ?>>
 
442
<input type="hidden" name="action" value="add-tag" />
 
443
<input type="hidden" name="screen" value="<?php echo esc_attr($current_screen->id); ?>" />
 
444
<input type="hidden" name="taxonomy" value="<?php echo esc_attr($taxonomy); ?>" />
 
445
<input type="hidden" name="post_type" value="<?php echo esc_attr($post_type); ?>" />
 
446
<?php wp_nonce_field('add-tag', '_wpnonce_add-tag'); ?>
 
447
 
 
448
<div class="form-field form-required">
 
449
        <label for="tag-name"><?php _ex('Name', 'Taxonomy Name'); ?></label>
 
450
        <input name="tag-name" id="tag-name" type="text" value="" size="40" aria-required="true" />
 
451
        <p><?php _e('The name is how it appears on your site.'); ?></p>
 
452
</div>
 
453
<?php if ( ! global_terms_enabled() ) : ?>
 
454
<div class="form-field">
 
455
        <label for="tag-slug"><?php _ex('Slug', 'Taxonomy Slug'); ?></label>
 
456
        <input name="slug" id="tag-slug" type="text" value="" size="40" />
 
457
        <p><?php _e('The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.'); ?></p>
 
458
</div>
 
459
<?php endif; // global_terms_enabled() ?>
 
460
<?php if ( is_taxonomy_hierarchical($taxonomy) ) : ?>
 
461
<div class="form-field">
 
462
        <label for="parent"><?php _ex('Parent', 'Taxonomy Parent'); ?></label>
 
463
        <?php
 
464
        $dropdown_args = array(
 
465
                'hide_empty'       => 0,
 
466
                'hide_if_empty'    => false,
 
467
                'taxonomy'         => $taxonomy,
 
468
                'name'             => 'parent',
 
469
                'orderby'          => 'name',
 
470
                'hierarchical'     => true,
 
471
                'show_option_none' => __( 'None' ),
 
472
        );
 
473
 
 
474
        /**
 
475
         * Filter the taxonomy parent drop-down on the Edit Term page.
 
476
         *
 
477
         * @since 3.7.0
 
478
         *
 
479
         * @param array  $dropdown_args {
 
480
         *     An array of taxonomy parent drop-down arguments.
 
481
         *
 
482
         *     @type int|bool $hide_empty       Whether to hide terms not attached to any posts. Default 0|false.
 
483
         *     @type bool     $hide_if_empty    Whether to hide the drop-down if no terms exist. Default false.
 
484
         *     @type string   $taxonomy         The taxonomy slug.
 
485
         *     @type string   $name             Value of the name attribute to use for the drop-down select element.
 
486
         *                                      Default 'parent'.
 
487
         *     @type string   $orderby          The field to order by. Default 'name'.
 
488
         *     @type bool     $hierarchical     Whether the taxonomy is hierarchical. Default true.
 
489
         *     @type string   $show_option_none Label to display if there are no terms. Default 'None'.
 
490
         * }
 
491
         * @param string $taxonomy The taxonomy slug.
 
492
         */
 
493
        $dropdown_args = apply_filters( 'taxonomy_parent_dropdown_args', $dropdown_args, $taxonomy );
 
494
        wp_dropdown_categories( $dropdown_args );
 
495
        ?>
 
496
        <?php if ( 'category' == $taxonomy ) : // @todo: Generic text for hierarchical taxonomies ?>
 
497
                <p><?php _e('Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional.'); ?></p>
 
498
        <?php endif; ?>
 
499
</div>
 
500
<?php endif; // is_taxonomy_hierarchical() ?>
 
501
<div class="form-field">
 
502
        <label for="tag-description"><?php _ex('Description', 'Taxonomy Description'); ?></label>
 
503
        <textarea name="description" id="tag-description" rows="5" cols="40"></textarea>
 
504
        <p><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></p>
 
505
</div>
 
506
 
 
507
<?php
 
508
if ( ! is_taxonomy_hierarchical( $taxonomy ) ) {
 
509
        /**
 
510
         * Fires after the Add Tag form fields for non-hierarchical taxonomies.
 
511
         *
 
512
         * @since 3.0.0
 
513
         *
 
514
         * @param string $taxonomy The taxonomy slug.
 
515
         */
 
516
        do_action( 'add_tag_form_fields', $taxonomy );
 
517
}
 
518
 
 
519
/**
 
520
 * Fires after the Add Term form fields for hierarchical taxonomies.
 
521
 *
 
522
 * The dynamic portion of the hook name, $taxonomy, refers to the taxonomy slug.
 
523
 *
 
524
 * @since 3.0.0
 
525
 *
 
526
 * @param string $taxonomy The taxonomy slug.
 
527
 */
 
528
do_action( "{$taxonomy}_add_form_fields", $taxonomy );
 
529
 
 
530
submit_button( $tax->labels->add_new_item );
 
531
 
 
532
if ( 'category' == $taxonomy ) {
 
533
        /**
 
534
         * Fires at the end of the Edit Category form.
 
535
         *
 
536
         * @since 2.1.0
 
537
         * @deprecated 3.0.0 Use {$taxonomy}_add_form instead.
 
538
         *
 
539
         * @param object $arg Optional arguments cast to an object.
 
540
         */
 
541
        do_action( 'edit_category_form', (object) array( 'parent' => 0 ) );
 
542
} elseif ( 'link_category' == $taxonomy ) {
 
543
        /**
 
544
         * Fires at the end of the Edit Link form.
 
545
         *
 
546
         * @since 2.3.0
 
547
         * @deprecated 3.0.0 Use {$taxonomy}_add_form instead.
 
548
         *
 
549
         * @param object $arg Optional arguments cast to an object.
 
550
         */
 
551
        do_action( 'edit_link_category_form', (object) array( 'parent' => 0 ) );
 
552
} else {
 
553
        /**
 
554
         * Fires at the end of the Add Tag form.
 
555
         *
 
556
         * @since 2.7.0
 
557
         * @deprecated 3.0.0 Use {$taxonomy}_add_form instead.
 
558
         *
 
559
         * @param string $taxonomy The taxonomy slug.
 
560
         */
 
561
        do_action( 'add_tag_form', $taxonomy );
 
562
}
 
563
 
 
564
/**
 
565
 * Fires at the end of the Add Term form for all taxonomies.
 
566
 *
 
567
 * The dynamic portion of the hook name, $taxonomy, refers to the taxonomy slug.
 
568
 *
 
569
 * @since 3.0.0
 
570
 *
 
571
 * @param string $taxonomy The taxonomy slug.
 
572
 */
 
573
do_action( "{$taxonomy}_add_form", $taxonomy );
 
574
?>
 
575
</form></div>
 
576
<?php } ?>
 
577
 
 
578
</div>
 
579
</div><!-- /col-left -->
 
580
 
 
581
</div><!-- /col-container -->
 
582
</div><!-- /wrap -->
 
583
<script type="text/javascript">
 
584
try{document.forms.addtag['tag-name'].focus();}catch(e){}
 
585
</script>
 
586
<?php $wp_list_table->inline_edit(); ?>
 
587
 
 
588
<?php
 
589
break;
 
590
}
 
591
 
 
592
include( ABSPATH . 'wp-admin/admin-footer.php' );