Custom Post Type UI - Version 1.8.0

Version Description

  • 2020-08-14 =
  • Added: support for default terms with a custom taxonomy.
  • Updated: Removed the forcing of underscores for post type slugs. Taxonomies are still forced.
  • Fixed: jQuery compatibility issue with WordPress 5.5.0
Download this release

Release Info

Developer tw2113
Plugin Icon 128x128 Custom Post Type UI
Version 1.8.0
Comparing to
See all releases

Code changes from version 1.7.5 to 1.8.0

Files changed (8) hide show
  1. css/cptui.css +1 -1
  2. custom-post-type-ui.php +17 -3
  3. inc/about.php +4 -8
  4. inc/taxonomies.php +14 -0
  5. inc/tools.php +21 -0
  6. js/cptui.js +6 -19
  7. js/cptui.min.js +1 -1
  8. readme.txt +137 -208
css/cptui.css CHANGED
@@ -210,7 +210,7 @@
210
 
211
  .about-wrap .cptui-about-text {
212
  margin-bottom: 1em !important;
213
- margin-right: 0px;
214
  max-width: calc(100% - 173px);
215
  }
216
 
210
 
211
  .about-wrap .cptui-about-text {
212
  margin-bottom: 1em !important;
213
+ margin-right: 0;
214
  max-width: calc(100% - 173px);
215
  }
216
 
custom-post-type-ui.php CHANGED
@@ -16,7 +16,7 @@
16
  * Plugin URI: https://github.com/WebDevStudios/custom-post-type-ui/
17
  * Description: Admin panel for creating custom post types and custom taxonomies in WordPress
18
  * Author: WebDevStudios
19
- * Version: 1.7.5
20
  * Author URI: https://webdevstudios.com/
21
  * Text Domain: custom-post-type-ui
22
  * Domain Path: /languages
@@ -30,8 +30,8 @@ if ( ! defined( 'ABSPATH' ) ) {
30
  exit;
31
  }
32
 
33
- define( 'CPT_VERSION', '1.7.5' ); // Left for legacy purposes.
34
- define( 'CPTUI_VERSION', '1.7.5' );
35
  define( 'CPTUI_WP_VERSION', get_bloginfo( 'version' ) );
36
 
37
  /**
@@ -677,6 +677,19 @@ function cptui_register_single_taxonomy( $taxonomy = [] ) {
677
  if ( ! empty( $taxonomy['meta_box_cb'] ) ) {
678
  $meta_box_cb = ( false !== get_disp_boolean( $taxonomy['meta_box_cb'] ) ) ? $taxonomy['meta_box_cb'] : false;
679
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
680
 
681
  $args = [
682
  'labels' => $labels,
@@ -696,6 +709,7 @@ function cptui_register_single_taxonomy( $taxonomy = [] ) {
696
  'rest_controller_class' => $rest_controller_class,
697
  'show_in_quick_edit' => $show_in_quick_edit,
698
  'meta_box_cb' => $meta_box_cb,
 
699
  ];
700
 
701
  $object_type = ! empty( $taxonomy['object_types'] ) ? $taxonomy['object_types'] : '';
16
  * Plugin URI: https://github.com/WebDevStudios/custom-post-type-ui/
17
  * Description: Admin panel for creating custom post types and custom taxonomies in WordPress
18
  * Author: WebDevStudios
19
+ * Version: 1.8.0
20
  * Author URI: https://webdevstudios.com/
21
  * Text Domain: custom-post-type-ui
22
  * Domain Path: /languages
30
  exit;
31
  }
32
 
33
+ define( 'CPT_VERSION', '1.8.0' ); // Left for legacy purposes.
34
+ define( 'CPTUI_VERSION', '1.8.0' );
35
  define( 'CPTUI_WP_VERSION', get_bloginfo( 'version' ) );
36
 
37
  /**
677
  if ( ! empty( $taxonomy['meta_box_cb'] ) ) {
678
  $meta_box_cb = ( false !== get_disp_boolean( $taxonomy['meta_box_cb'] ) ) ? $taxonomy['meta_box_cb'] : false;
679
  }
680
+ $default_term = null;
681
+ if ( ! empty( $taxonomy['default_term'] ) ) {
682
+ $term_parts = explode(',', $taxonomy['default_term'] );
683
+ if ( ! empty( $term_parts[0] ) ) {
684
+ $default_term['name'] = trim( $term_parts[0] );
685
+ }
686
+ if ( ! empty( $term_parts[1] ) ) {
687
+ $default_term['slug'] = trim( $term_parts[1] );
688
+ }
689
+ if ( ! empty( $term_parts[2] ) ) {
690
+ $default_term['description'] = trim( $term_parts[2] );
691
+ }
692
+ }
693
 
694
  $args = [
695
  'labels' => $labels,
709
  'rest_controller_class' => $rest_controller_class,
710
  'show_in_quick_edit' => $show_in_quick_edit,
711
  'meta_box_cb' => $meta_box_cb,
712
+ 'default_term' => $default_term,
713
  ];
714
 
715
  $object_type = ! empty( $taxonomy['object_types'] ) ? $taxonomy['object_types'] : '';
inc/about.php CHANGED
@@ -85,16 +85,12 @@ function cptui_settings() {
85
  <div class="changelog about-integrations">
86
  <div class="cptui-feature feature-section col three-col">
87
  <div class="col">
88
- <h2><?php esc_html_e( 'Ability to temporarily disable content types without deleting them.', 'custom-post-type-ui' ); ?></h2>
89
- <p><?php esc_html_e( 'Have you ever wanted to temporarily disable things without removing their settings, as you continue developing the site? Custom Post Type UI now has the ability to skip content types with a WordPress filter. UI options to toggle will be in a later version.', 'custom-post-type-ui' ); ?></p>
90
- </div>
91
- <div class="col">
92
- <h2><?php esc_html_e( 'New post type labels introduced in WordPress 5.0', 'custom-post-type-ui' ); ?></h2>
93
- <p><?php esc_html_e( 'We have increased our minimum supported WordPress version and with that, we now support the newest available label options. You now have even finer control over your admin UI wording.', 'custom-post-type-ui' ); ?></p>
94
  </div>
95
  <div class="col last-feature">
96
- <h2></h2>
97
- <p></p>
98
  </div>
99
  </div>
100
  </div>
85
  <div class="changelog about-integrations">
86
  <div class="cptui-feature feature-section col three-col">
87
  <div class="col">
88
+ <h2><?php esc_html_e( 'Ability to set a default term for a custom taxonomy.', 'custom-post-type-ui' ); ?></h2>
89
+ <p><?php esc_html_e( 'WordPress 5.5 added the ability to set a default term to your custom taxonomy, and now you do not have to worry about extra coding for that with Custom Post Type UI.', 'custom-post-type-ui' ); ?></p>
 
 
 
 
90
  </div>
91
  <div class="col last-feature">
92
+ <h2><?php esc_html_e( 'Removed forced underscores for post type slugs.', 'custom-post-type-ui' ); ?></h2>
93
+ <p><?php esc_html_e( 'Post types are actually able to have dashes in their slug/name value, so we have removed the forcing of underscores for them. Taxonomies do still need underscores, until told otherwise.', 'custom-post-type-ui' ); ?></p>
94
  </div>
95
  </div>
96
  </div>
inc/taxonomies.php CHANGED
@@ -1055,6 +1055,14 @@ function cptui_manage_taxonomies() {
1055
  'labeltext' => esc_html__( 'Metabox callback', 'custom-post-type-ui' ),
1056
  'helptext' => esc_html__( 'Sets a callback function name for the meta box display. Hierarchical default: post_categories_meta_box, non-hierarchical default: post_tags_meta_box. To remove the metabox completely, use "false".', 'custom-post-type-ui' ),
1057
  ] );
 
 
 
 
 
 
 
 
1058
  ?>
1059
  </table>
1060
  </div>
@@ -1278,6 +1286,7 @@ function cptui_delete_taxonomy( $data = [] ) {
1278
  $success = update_option( 'cptui_taxonomies', $taxonomies );
1279
  }
1280
  }
 
1281
 
1282
  /**
1283
  * Fires after a taxonomy is deleted from our saved options.
@@ -1323,6 +1332,9 @@ function cptui_update_taxonomy( $data = [] ) {
1323
  return cptui_admin_notices( 'error', '', false, esc_html__( 'Please provide a taxonomy name', 'custom-post-type-ui' ) );
1324
  }
1325
 
 
 
 
1326
  if ( empty( $data['cpt_post_types'] ) ) {
1327
  add_filter( 'cptui_custom_error_message', 'cptui_empty_cpt_on_taxonomy' );
1328
  return 'error';
@@ -1397,6 +1409,7 @@ function cptui_update_taxonomy( $data = [] ) {
1397
  $rest_base = trim( $data['cpt_custom_tax']['rest_base'] );
1398
  $rest_controller_class = trim( $data['cpt_custom_tax']['rest_controller_class'] );
1399
  $show_quickpanel_bulk = ! empty( $data['cpt_custom_tax']['show_in_quick_edit'] ) ? disp_boolean( $data['cpt_custom_tax']['show_in_quick_edit'] ) : '';
 
1400
 
1401
  $meta_box_cb = trim( $data['cpt_custom_tax']['meta_box_cb'] );
1402
  // We may or may not need to force a boolean false keyword.
@@ -1429,6 +1442,7 @@ function cptui_update_taxonomy( $data = [] ) {
1429
  'rest_controller_class' => $rest_controller_class,
1430
  'labels' => $data['cpt_tax_labels'],
1431
  'meta_box_cb' => $meta_box_cb,
 
1432
  ];
1433
 
1434
  $taxonomies[ $data['cpt_custom_tax']['name'] ]['object_types'] = $data['cpt_post_types'];
1055
  'labeltext' => esc_html__( 'Metabox callback', 'custom-post-type-ui' ),
1056
  'helptext' => esc_html__( 'Sets a callback function name for the meta box display. Hierarchical default: post_categories_meta_box, non-hierarchical default: post_tags_meta_box. To remove the metabox completely, use "false".', 'custom-post-type-ui' ),
1057
  ] );
1058
+
1059
+ echo $ui->get_text_input( [
1060
+ 'namearray' => 'cpt_custom_tax',
1061
+ 'name' => 'default_term',
1062
+ 'textvalue' => isset( $current['default_term'] ) ? esc_attr( $current['default_term'] ) : '',
1063
+ 'labeltext' => esc_html__( 'Default Term', 'custom-post-type-ui' ),
1064
+ 'helptext' => esc_html__( 'Set a default term for the taxonomy. Able to set a name, slug, and description. Only a name is required if setting a default, others are optional. Set values in the following order, separated by comma. Example: name, slug, description', 'custom-post-type-ui' ),
1065
+ ] );
1066
  ?>
1067
  </table>
1068
  </div>
1286
  $success = update_option( 'cptui_taxonomies', $taxonomies );
1287
  }
1288
  }
1289
+ delete_option( "default_term_{$data['cpt_custom_tax']['name']}" );
1290
 
1291
  /**
1292
  * Fires after a taxonomy is deleted from our saved options.
1332
  return cptui_admin_notices( 'error', '', false, esc_html__( 'Please provide a taxonomy name', 'custom-post-type-ui' ) );
1333
  }
1334
 
1335
+ // Maybe a little harsh, but we shouldn't be saving THAT frequently.
1336
+ delete_option( "default_term_{$data['cpt_custom_tax']['name']}" );
1337
+
1338
  if ( empty( $data['cpt_post_types'] ) ) {
1339
  add_filter( 'cptui_custom_error_message', 'cptui_empty_cpt_on_taxonomy' );
1340
  return 'error';
1409
  $rest_base = trim( $data['cpt_custom_tax']['rest_base'] );
1410
  $rest_controller_class = trim( $data['cpt_custom_tax']['rest_controller_class'] );
1411
  $show_quickpanel_bulk = ! empty( $data['cpt_custom_tax']['show_in_quick_edit'] ) ? disp_boolean( $data['cpt_custom_tax']['show_in_quick_edit'] ) : '';
1412
+ $default_term = trim( $data['cpt_custom_tax']['default_term'] );
1413
 
1414
  $meta_box_cb = trim( $data['cpt_custom_tax']['meta_box_cb'] );
1415
  // We may or may not need to force a boolean false keyword.
1442
  'rest_controller_class' => $rest_controller_class,
1443
  'labels' => $data['cpt_tax_labels'],
1444
  'meta_box_cb' => $meta_box_cb,
1445
+ 'default_term' => $default_term,
1446
  ];
1447
 
1448
  $taxonomies[ $data['cpt_custom_tax']['name'] ]['object_types'] = $data['cpt_post_types'];
inc/tools.php CHANGED
@@ -285,6 +285,24 @@ function cptui_get_single_taxonomy_registery( $taxonomy = [] ) {
285
  $meta_box_cb = ( false !== get_disp_boolean( $taxonomy['meta_box_cb'] ) ) ? '"' . $taxonomy['meta_box_cb'] . '"' : 'false';
286
  }
287
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  $my_theme = wp_get_theme();
289
  $textdomain = $my_theme->get( 'TextDomain' );
290
  if ( empty( $textdomain ) ) {
@@ -327,6 +345,9 @@ foreach ( $taxonomy['labels'] as $key => $label ) {
327
  <?php if ( ! empty( $meta_box_cb ) ) { ?>
328
  "meta_box_cb" => <?php echo $meta_box_cb; ?>,
329
  <?php } ?>
 
 
 
330
  ];
331
  register_taxonomy( "<?php echo esc_html( $taxonomy['name'] ); ?>", <?php echo $post_types; ?>, $args );
332
  <?php
285
  $meta_box_cb = ( false !== get_disp_boolean( $taxonomy['meta_box_cb'] ) ) ? '"' . $taxonomy['meta_box_cb'] . '"' : 'false';
286
  }
287
 
288
+ $default_term = '';
289
+ if ( ! empty( $taxonomy['default_term'] ) ) {
290
+ $term_parts = explode( ',', $taxonomy['default_term'] );
291
+ $default_term_start = '[';
292
+ $default_term_end = ']';
293
+ if ( ! empty( $term_parts[0] ) ) {
294
+ $default_term .= "'name' => '" . trim( $term_parts[0] ) . "'";
295
+ }
296
+ if ( ! empty( $term_parts[1] ) ) {
297
+ $default_term .= ", 'slug' => '" . trim( $term_parts[1] ) . "'";
298
+ }
299
+ if ( ! empty( $term_parts[2] ) ) {
300
+ $default_term .= ", 'description' => '" . trim( $term_parts[2] ) . "'";
301
+ }
302
+
303
+ $default_term = $default_term_start . $default_term . $default_term_end;
304
+ }
305
+
306
  $my_theme = wp_get_theme();
307
  $textdomain = $my_theme->get( 'TextDomain' );
308
  if ( empty( $textdomain ) ) {
345
  <?php if ( ! empty( $meta_box_cb ) ) { ?>
346
  "meta_box_cb" => <?php echo $meta_box_cb; ?>,
347
  <?php } ?>
348
+ <?php if ( ! empty( $default_term ) ) { ?>
349
+ "default_term" => <?php echo $default_term; ?>,
350
+ <?php } ?>
351
  ];
352
  register_taxonomy( "<?php echo esc_html( $taxonomy['name'] ); ?>", <?php echo $post_types; ?>, $args );
353
  <?php
js/cptui.js CHANGED
@@ -78,7 +78,7 @@ postboxes.add_postbox_toggles(pagenow);
78
  value = transliterate(value);
79
  value = replaceSpecialCharacters(value);
80
  if ( value !== original_value ) {
81
- $(this).attr('value', value);
82
  }
83
  }
84
 
@@ -131,8 +131,11 @@ postboxes.add_postbox_toggles(pagenow);
131
  }
132
 
133
  function replaceSpecialCharacters(s) {
134
-
135
- s = s.replace(/[^a-z0-9\s]/gi, '_');
 
 
 
136
 
137
  return s;
138
  }
@@ -180,22 +183,6 @@ postboxes.add_postbox_toggles(pagenow);
180
  return false;
181
  });
182
 
183
- $('#togglelabels').on('click',function(e){
184
- e.preventDefault();
185
- $('#labels_expand').toggleClass('toggledclosed');
186
- });
187
- $('#togglesettings').on('click',function(e) {
188
- e.preventDefault();
189
- $('#settings_expand').toggleClass('toggledclosed');
190
- });
191
- $('#labels_expand,#settings_expand').on('focus',function(e) {
192
- if ( $(this).hasClass('toggledclosed') ) {
193
- $(this).toggleClass('toggledclosed');
194
- }
195
- });
196
- $('#labels_expand legend,#settings_expand legend').on('click',function(e){
197
- $(this).parent().toggleClass('toggledclosed');
198
- });
199
  $('.cptui-help').on('click',function(e){
200
  e.preventDefault();
201
  });
78
  value = transliterate(value);
79
  value = replaceSpecialCharacters(value);
80
  if ( value !== original_value ) {
81
+ $(this).prop('value', value);
82
  }
83
  }
84
 
131
  }
132
 
133
  function replaceSpecialCharacters(s) {
134
+ if ( 'cpt-ui_page_cptui_manage_post_types' === window.pagenow ) {
135
+ s = s.replace(/[^a-z0-9\s-]/gi, '_');
136
+ } else {
137
+ s = s.replace(/[^a-z0-9\s]/gi, '_');
138
+ }
139
 
140
  return s;
141
  }
183
  return false;
184
  });
185
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  $('.cptui-help').on('click',function(e){
187
  e.preventDefault();
188
  });
js/cptui.min.js CHANGED
@@ -1 +1 @@
1
- postboxes.add_postbox_toggles(pagenow),function($){if($("#cptui_select_post_type_submit").hide(),$("#cptui_select_taxonomy_submit").hide(),"edit"===function(name,url){url=url||window.location.href;name=name.replace(/[\[\]]/g,"\\$&");var results=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)").exec(url);return results?results[2]?decodeURIComponent(results[2].replace(/\+/g," ")):"":null}("action"))var original_slug=$("#name").val();$("#post_type").on("change",function(){$("#cptui_select_post_type").submit()}),$("#taxonomy").on("change",function(){$("#cptui_select_taxonomy").submit()}),$(".cptui-delete-top, .cptui-delete-bottom").on("click",function(e){e.preventDefault();var msg="";"undefined"!=typeof cptui_type_data?msg=cptui_type_data.confirm:"undefined"!=typeof cptui_tax_data&&(msg=cptui_tax_data.confirm);$('<div class="cptui-submit-delete-dialog">'+msg+"</div>").appendTo("#poststuff").dialog({dialogClass:"wp-dialog",modal:!0,autoOpen:!0,buttons:{OK:function(){$(e.target).closest("form");$(e.target).unbind("click").click()},Cancel:function(){$(this).dialog("close")}}})}),$("#support .question").each(function(){var tis=$(this),state=!1,answer=tis.next("div").slideUp();tis.on("click keydown",function(e){"keydown"===e.type&&32!==e.keyCode&&13!==e.keyCode||(e.preventDefault(),state=!state,answer.slideToggle(state),tis.toggleClass("active",state),tis.attr("aria-expanded",state.toString()),tis.focus())})}),$("#name").on("keyup",function(e){var value,original_value;if(value=original_value=$(this).val(),9!==e.keyCode&&37!==e.keyCode&&38!==e.keyCode&&39!==e.keyCode&&40!==e.keyCode&&(value=function(s){return s=s.replace(/[^a-z0-9\s]/gi,"_")}(value=function(word){return word.split("").map(function(char){return cyrillic[char]||char}).join("")}(value=function(s){for(var diacritics=[/[\300-\306]/g,/[\340-\346]/g,/[\310-\313]/g,/[\350-\353]/g,/[\314-\317]/g,/[\354-\357]/g,/[\322-\330]/g,/[\362-\370]/g,/[\331-\334]/g,/[\371-\374]/g,/[\321]/g,/[\361]/g,/[\307]/g,/[\347]/g],chars=["A","a","E","e","I","i","O","o","U","u","N","n","C","c"],i=0;i<diacritics.length;i++)s=s.replace(diacritics[i],chars[i]);return s}(value=(value=value.replace(/ /g,"_")).toLowerCase()))))!==original_value&&$(this).attr("value",value),void 0!==original_slug){var $slugchanged=$("#slugchanged");value!=original_slug?$slugchanged.removeClass("hidemessage"):$slugchanged.addClass("hidemessage")}var $slugexists=$("#slugexists");"undefined"!=typeof cptui_type_data&&(cptui_type_data.existing_post_types.hasOwnProperty(value)&&value!==original_slug?$slugexists.removeClass("hidemessage"):$slugexists.addClass("hidemessage")),"undefined"!=typeof cptui_tax_data&&(cptui_tax_data.existing_taxonomies.hasOwnProperty(value)&&value!==original_slug?$slugexists.removeClass("hidemessage"):$slugexists.addClass("hidemessage"))});var cyrillic={"Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"'","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"'","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"'","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"'","б":"b","ю":"yu"};if(null!=wp.media)var _custom_media=!0,_orig_send_attachment=wp.media.editor.send.attachment;$("#cptui_choose_icon").on("click",function(e){e.preventDefault();var button=$(this),id=jQuery("#menu_icon").attr("id");return _custom_media=!0,wp.media.editor.send.attachment=function(props,attachment){if(!_custom_media)return _orig_send_attachment.apply(this,[props,attachment]);$("#"+id).val(attachment.url)},wp.media.editor.open(button),!1}),$("#togglelabels").on("click",function(e){e.preventDefault(),$("#labels_expand").toggleClass("toggledclosed")}),$("#togglesettings").on("click",function(e){e.preventDefault(),$("#settings_expand").toggleClass("toggledclosed")}),$("#labels_expand,#settings_expand").on("focus",function(e){$(this).hasClass("toggledclosed")&&$(this).toggleClass("toggledclosed")}),$("#labels_expand legend,#settings_expand legend").on("click",function(e){$(this).parent().toggleClass("toggledclosed")}),$(".cptui-help").on("click",function(e){e.preventDefault()}),$(".cptui-taxonomy-submit").on("click",function(e){if(0==$(".cptui-table :checkbox:checked").length){e.preventDefault();$('<div class="cptui-taxonomy-empty-types-dialog">'+cptui_tax_data.no_associated_type+"</div>").appendTo("#poststuff").dialog({dialogClass:"wp-dialog",modal:!0,autoOpen:!0,buttons:{OK:function(){$(this).dialog("close")}}})}}),$("#auto-populate").on("click tap",function(e){e.preventDefault();var slug=$("#name").val(),plural=$("#label").val(),singular=$("#singular_label").val(),fields=$('.cptui-labels input[type="text"]');""!==slug&&(""===plural&&(plural=slug),""===singular&&(singular=slug),$(fields).each(function(i,el){var newval=$(el).data("label"),plurality=$(el).data("plurality");"undefined"!==newval&&(newval="plural"===plurality?newval.replace(/item/gi,plural):newval.replace(/item/gi,singular),""===$(el).val()&&$(el).val(newval))}))})}(jQuery);
1
+ postboxes.add_postbox_toggles(pagenow),function($){if($("#cptui_select_post_type_submit").hide(),$("#cptui_select_taxonomy_submit").hide(),"edit"===function(name,url){url=url||window.location.href;name=name.replace(/[\[\]]/g,"\\$&");var results=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)").exec(url);return results?results[2]?decodeURIComponent(results[2].replace(/\+/g," ")):"":null}("action"))var original_slug=$("#name").val();$("#post_type").on("change",function(){$("#cptui_select_post_type").submit()}),$("#taxonomy").on("change",function(){$("#cptui_select_taxonomy").submit()}),$(".cptui-delete-top, .cptui-delete-bottom").on("click",function(e){e.preventDefault();var msg="";"undefined"!=typeof cptui_type_data?msg=cptui_type_data.confirm:"undefined"!=typeof cptui_tax_data&&(msg=cptui_tax_data.confirm);$('<div class="cptui-submit-delete-dialog">'+msg+"</div>").appendTo("#poststuff").dialog({dialogClass:"wp-dialog",modal:!0,autoOpen:!0,buttons:{OK:function(){$(e.target).closest("form");$(e.target).unbind("click").click()},Cancel:function(){$(this).dialog("close")}}})}),$("#support .question").each(function(){var tis=$(this),state=!1,answer=tis.next("div").slideUp();tis.on("click keydown",function(e){"keydown"===e.type&&32!==e.keyCode&&13!==e.keyCode||(e.preventDefault(),state=!state,answer.slideToggle(state),tis.toggleClass("active",state),tis.attr("aria-expanded",state.toString()),tis.focus())})}),$("#name").on("keyup",function(e){var value,original_value;if(value=original_value=$(this).val(),9!==e.keyCode&&37!==e.keyCode&&38!==e.keyCode&&39!==e.keyCode&&40!==e.keyCode&&(value=function(s){s="cpt-ui_page_cptui_manage_post_types"===window.pagenow?s.replace(/[^a-z0-9\s-]/gi,"_"):s.replace(/[^a-z0-9\s]/gi,"_");return s}(value=function(word){return word.split("").map(function(char){return cyrillic[char]||char}).join("")}(value=function(s){for(var diacritics=[/[\300-\306]/g,/[\340-\346]/g,/[\310-\313]/g,/[\350-\353]/g,/[\314-\317]/g,/[\354-\357]/g,/[\322-\330]/g,/[\362-\370]/g,/[\331-\334]/g,/[\371-\374]/g,/[\321]/g,/[\361]/g,/[\307]/g,/[\347]/g],chars=["A","a","E","e","I","i","O","o","U","u","N","n","C","c"],i=0;i<diacritics.length;i++)s=s.replace(diacritics[i],chars[i]);return s}(value=(value=value.replace(/ /g,"_")).toLowerCase()))))!==original_value&&$(this).prop("value",value),void 0!==original_slug){var $slugchanged=$("#slugchanged");value!=original_slug?$slugchanged.removeClass("hidemessage"):$slugchanged.addClass("hidemessage")}var $slugexists=$("#slugexists");"undefined"!=typeof cptui_type_data&&(cptui_type_data.existing_post_types.hasOwnProperty(value)&&value!==original_slug?$slugexists.removeClass("hidemessage"):$slugexists.addClass("hidemessage")),"undefined"!=typeof cptui_tax_data&&(cptui_tax_data.existing_taxonomies.hasOwnProperty(value)&&value!==original_slug?$slugexists.removeClass("hidemessage"):$slugexists.addClass("hidemessage"))});var cyrillic={"Ё":"YO","Й":"I","Ц":"TS","У":"U","К":"K","Е":"E","Н":"N","Г":"G","Ш":"SH","Щ":"SCH","З":"Z","Х":"H","Ъ":"'","ё":"yo","й":"i","ц":"ts","у":"u","к":"k","е":"e","н":"n","г":"g","ш":"sh","щ":"sch","з":"z","х":"h","ъ":"'","Ф":"F","Ы":"I","В":"V","А":"a","П":"P","Р":"R","О":"O","Л":"L","Д":"D","Ж":"ZH","Э":"E","ф":"f","ы":"i","в":"v","а":"a","п":"p","р":"r","о":"o","л":"l","д":"d","ж":"zh","э":"e","Я":"Ya","Ч":"CH","С":"S","М":"M","И":"I","Т":"T","Ь":"'","Б":"B","Ю":"YU","я":"ya","ч":"ch","с":"s","м":"m","и":"i","т":"t","ь":"'","б":"b","ю":"yu"};if(null!=wp.media)var _custom_media=!0,_orig_send_attachment=wp.media.editor.send.attachment;$("#cptui_choose_icon").on("click",function(e){e.preventDefault();var button=$(this),id=jQuery("#menu_icon").attr("id");return _custom_media=!0,wp.media.editor.send.attachment=function(props,attachment){if(!_custom_media)return _orig_send_attachment.apply(this,[props,attachment]);$("#"+id).val(attachment.url)},wp.media.editor.open(button),!1}),$(".cptui-help").on("click",function(e){e.preventDefault()}),$(".cptui-taxonomy-submit").on("click",function(e){if(0==$(".cptui-table :checkbox:checked").length){e.preventDefault();$('<div class="cptui-taxonomy-empty-types-dialog">'+cptui_tax_data.no_associated_type+"</div>").appendTo("#poststuff").dialog({dialogClass:"wp-dialog",modal:!0,autoOpen:!0,buttons:{OK:function(){$(this).dialog("close")}}})}}),$("#auto-populate").on("click tap",function(e){e.preventDefault();var slug=$("#name").val(),plural=$("#label").val(),singular=$("#singular_label").val(),fields=$('.cptui-labels input[type="text"]');""!==slug&&(""===plural&&(plural=slug),""===singular&&(singular=slug),$(fields).each(function(i,el){var newval=$(el).data("label"),plurality=$(el).data("plurality");"undefined"!==newval&&(newval="plural"===plurality?newval.replace(/item/gi,plural):newval.replace(/item/gi,singular),""===$(el).val()&&$(el).val(newval))}))})}(jQuery);
readme.txt CHANGED
@@ -1,208 +1,137 @@
1
- === Custom Post Type UI ===
2
- Contributors: webdevstudios, pluginize, tw2113, vegasgeek, modemlooper, williamsba1
3
- Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3084056
4
- Tags: custom post types, CPT, CMS, post, types, post type, taxonomy, tax, custom, content types, post types
5
- Requires at least: 5.5
6
- Tested up to: 5.5.0
7
- Stable tag: 1.7.5
8
- License: GPL-2.0+
9
- Requires PHP: 5.6
10
-
11
- Admin UI for creating custom post types and custom taxonomies for WordPress
12
-
13
- == Description ==
14
-
15
- Custom Post Type UI provides an easy to use interface for registering and managing custom post types and taxonomies for your website.
16
-
17
- While CPTUI helps solve the problem of creating custom post types, displaying the data gleaned from them can be a whole new challenge. That’s why we created [Custom Post Type UI Extended](https://pluginize.com/product/custom-post-type-ui-extended/?utm_source=cptui-desription&utm_medium=text&utm_campaign=wporg). [View our Layouts page](https://pluginize.com/cpt-ui-extended-features/?utm_source=cptui-description-examples&utm_medium=text&utm_campaign=wporg) to see some examples that are available with Custom Post Type UI Extended.
18
-
19
- Official development of Custom Post Type UI is on GitHub, with official stable releases published on WordPress.org. The GitHub repo can be found at [https://github.com/WebDevStudios/custom-post-type-ui](https://github.com/WebDevStudios/custom-post-type-ui). Please use the Support tab for potential bugs, issues, or enhancement ideas.
20
-
21
- [Pluginize](https://pluginize.com/?utm_source=cptui&utm_medium=text&utm_campaign=wporg) was launched in 2016 by [WebDevStudios](https://webdevstudios.com/) to promote, support, and house all of their [WordPress products](https://pluginize.com/shop/?utm_source=cptui-&utm_medium=text&utm_campaign=wporg). Pluginize is not only [creating new products for WordPress all the time, like CPTUI Extended](https://pluginize.com/product/custom-post-type-ui-extended/?utm_source=cptui&utm_medium=text&utm_campaign=wporg), but also provides ongoing support and development for WordPress community favorites like [CMB2](https://wordpress.org/plugins/cmb2/) and more.
22
-
23
- == Screenshots ==
24
-
25
- 1. Add new post type screen and tab.
26
- 2. Add new taxonomy screen and tab.
27
- 3. Registered post types and taxonomies from CPTUI
28
- 4. Import/Export Post Types screen.
29
- 5. Get Code screen.
30
- 6. Help/support screen.
31
-
32
- == Changelog ==
33
-
34
- = 1.7.5 - 2020-08-11 =
35
- * Updated: Addressed UI issues with WordPress 5.5.0
36
- * Updated: Moved required minimum WordPress version to 5.5.0
37
-
38
- = 1.7.4 - 2020-03-17 =
39
- * Added: Nonce admin verification for import functionality.
40
- * Added: Extra escaping of markup and output for "Get Code" areas.
41
-
42
- = 1.7.3 - 2020-02-05 =
43
- * Updated: styles and appearance to better match WordPress core.
44
- * Updated: Change newsletter service integration. Hey, sign up for our newsletter! Props @Oceas
45
-
46
- = 1.7.2 - 2020-01-08 =
47
- * Fixed: Duplicate entries for "delete_with_user" in get code.
48
- * Fixed: Delete button for post types and taxonomies at bottom of page did not trigger dialog prompt.
49
-
50
- = 1.7.1 - 2019-11-06 =
51
- * Fixed: Random-ish redirects to the "Add new" tab for post types or taxonomies
52
- * Fixed: JavaScript error when trying to delete a taxonomy.
53
-
54
- = 1.7.0 - 2019-11-06 =
55
- * Actually added this time: Delete with user support for post types. Managed to miss the code with 1.6.0 which was a long time ago.
56
- * Added: Ability to disable registration of post types or taxonomies, via code filter, without deleting them completely from settings.
57
- * Added: New post type labels introduced in WordPress 5.0.0.
58
- * Added: Link to Dashicon documentation for when editing menu icon. Props @juliekuehl
59
- * Added: Ability to automatically fill in additional labels based on chosen plural and singular label text.
60
- * Updated: Added post type templates documentation to help section.
61
- * Updated: Redirect user to the "add" tab if deleting the last post type or taxonomy created.
62
- * Updated: Touched up tab markup to match semantic improvements provided by WordPress 5.2.0.
63
- * Fixed: potential duplicate output of "parent_item_colon" with "Get Code" output.
64
- * Misc: Added code of conduct file to github repo. Props GaryJones.
65
-
66
- = 1.6.2 - 2019-05-20 =
67
- * Added: "themes" is now a reserved post type slug due to conflicts with WordPress internally.
68
- * Fixed: Updated wording around "Supports" section of post type settings screen.
69
-
70
- = 1.6.1 - 2018-12-03 =
71
- * Fixed: Missed quote for "publicly_queryable" in taxonomy "get code" output.
72
- * Fixed: Adjusted handling of capitalization on the word "false" when being used to disable a taxonomy metabox via the "metabox callback" setting. The word "false" needs to be all lowercase to disable.
73
- * Updated: Added note about ability to pass "false" for the "metabox callback" setting to disable the metabox.
74
- * Updated: Fall back to "custom-post-type-ui" textdomain in "get code" output if theme does not have their own.
75
- * Updated: Make "Show In Rest" setting default to true taxonomies for sake of easier Gutenberg integration in the future. 1.6.0 had just post types doing this.
76
-
77
- = 1.6.0 - 2018-10-22 =
78
- * Added: Support for `meta_box_cb` parameter for `register_taxonomy` and taxonomies.
79
- * Added: Dynamically warn about existing slugs.
80
- * Added: "delete_with_user" support for post types.
81
- * Added: Filters for post type and taxonomy data right before saving of final data.
82
- * Added: `cptui_get_taxonomy_exists` function to check if a provided taxonomy is registered.
83
- * Added: Required PHP version to readme.txt
84
- * Added: Filter on taxonomies to be listed as available for association with a post type.
85
- * Added: Warning indicators to our "Slug changed" and "Slug exists" warnings for post types and taxonomies.
86
- * Added: Support for "publicly_queryable" parameter for taxonomies.
87
- * Added: Support for "rest_controller_class" parameters for both post types and taxonomies.
88
- * Added: Some initial WP-CLI support for importing and exporting CPTUI settings.
89
- * Added: `name_admin_bar` support in post type labels.
90
- * Added: Handling of array versions for "capability_type" field.
91
- * Updated: Bump minimum WordPress version to 4.7.
92
- * Updated: Pass the object_type array to `cptui_pre_register_taxonomy` filter as extra parameter.
93
- * Updated: Adjusted preserved label handling to aid with plugin performance. Props alex-solovyev
94
- * Updated: Utilize `wp_doing_ajax()` function for our AJAX checks.
95
- * Updated: Clarify what is exported with the Post Types and Taxonomies spots for the Tools section.
96
- * Updated: Clarify that the listed post types to associate to a CPTUI taxonomy are public post types by default.
97
- * Updated: Make "Show In Rest" setting default to true for sake of easier Gutenberg integration in the future.
98
- * Fixed: Only register archive slug if has_archive is set to true.
99
- * Fixed: Error occurred when attempting to unset post types while editing a taxonomy.
100
- * Fixed: Prevent errors from non-existant callback functions during post type or taxonomy processing.
101
- * Fixed: Incorrect use of reserved taxonomy slugs function in a check for reserved post types.
102
- * Fixed: Make sure "No post type selected" alert trigger from both buttons on the taxonomy settings edit screen.
103
- * Fixed: Add our stylesheet only on our CPTUI pages. Fixes responsive bug on post editor screen.
104
- * Fixed: Removed duplicate "label" in taxonomy "get code" section.
105
-
106
-
107
- == Upgrade Notice ==
108
-
109
- = 1.7.5 - 2020-08-11 =
110
- * Updated: Addressed UI issues with WordPress 5.5.0
111
- * Updated: Moved required minimum WordPress version to 5.5.0
112
-
113
- = 1.7.4 - 2020-03-17 =
114
- * Added: Nonce admin verification for import functionality.
115
- * Added: Extra escaping of markup and output for "Get Code" areas.
116
-
117
- = 1.7.3 - 2020-02-05 =
118
- * Updated: styles and appearance to better match WordPress core.
119
- * Updated: Change newsletter service integration. Hey, sign up for our newsletter! Props @Oceas
120
-
121
- = 1.7.2 - 2020-01-08 =
122
- * Fixed: Duplicate entries for "delete_with_user" in get code.
123
- * Fixed: Delete button for post types and taxonomies at bottom of page did not trigger dialog prompt.
124
-
125
- = 1.7.1 - 2019-11-06 =
126
- * Fixed: Random-ish redirects to the "Add new" tab for post types or taxonomies
127
- * Fixed: JavaScript error when trying to delete a taxonomy.
128
-
129
- = 1.7.0 - 2019-11-06 =
130
- * Actually added this time: Delete with user support for post types. Managed to miss the code with 1.6.0 which was a long time ago.
131
- * Added: Ability to disable registration of post types or taxonomies, via code filter, without deleting them completely from settings.
132
- * Added: New post type labels introduced in WordPress 5.0.0.
133
- * Added: Link to Dashicon documentation for when editing menu icon. Props @juliekuehl
134
- * Added: Ability to automatically fill in additional labels based on chosen plural and singular label text.
135
- * Updated: Added post type templates documentation to help section.
136
- * Updated: Redirect user to the "add" tab if deleting the last post type or taxonomy created.
137
- * Updated: Touched up tab markup to match semantic improvements provided by WordPress 5.2.0.
138
- * Fixed: potential duplicate output of "parent_item_colon" with "Get Code" output.
139
- * Misc: Added code of conduct file to github repo. Props GaryJones.
140
-
141
- = 1.6.2 - 2019-05-20 =
142
- * Added: "themes" is now a reserved post type slug due to conflicts with WordPress internally.
143
- * Fixed: Updated wording around "Supports" section of post type settings screen.
144
-
145
- = 1.6.1 - 2018-12-03 =
146
- * Fixed: Missed quote for "publicly_queryable" in taxonomy "get code" output.
147
- * Fixed: Adjusted handling of capitalization on the word "false" when being used to disable a taxonomy metabox via the "metabox callback" setting. The word "false" needs to be all lowercase to disable.
148
- * Updated: Added note about ability to pass "false" for the "metabox callback" setting to disable the metabox.
149
- * Updated: Fall back to "custom-post-type-ui" textdomain in "get code" output if theme does not have their own.
150
- * Updated: Make "Show In Rest" setting default to true taxonomies for sake of easier Gutenberg integration in the future. 1.6.0 had just post types doing this.
151
-
152
- = 1.6.0 - 2018-10-22 =
153
- * Added: Support for `meta_box_cb` parameter for `register_taxonomy` and taxonomies.
154
- * Added: Dynamically warn about existing slugs.
155
- * Added: "delete_with_user" support for post types.
156
- * Added: Filters for post type and taxonomy data right before saving of final data.
157
- * Added: `cptui_get_taxonomy_exists` function to check if a provided taxonomy is registered.
158
- * Added: Required PHP version to readme.txt
159
- * Added: Filter on taxonomies to be listed as available for association with a post type.
160
- * Added: Warning indicators to our "Slug changed" and "Slug exists" warnings for post types and taxonomies.
161
- * Added: Support for "publicly_queryable" parameter for taxonomies.
162
- * Added: Support for "rest_controller_class" parameters for both post types and taxonomies.
163
- * Added: Some initial WP-CLI support for importing and exporting CPTUI settings.
164
- * Added: `name_admin_bar` support in post type labels.
165
- * Added: Handling of array versions for "capability_type" field.
166
- * Updated: Bump minimum WordPress version to 4.7.
167
- * Updated: Pass the object_type array to `cptui_pre_register_taxonomy` filter as extra parameter.
168
- * Updated: Adjusted preserved label handling to aid with plugin performance. Props alex-solovyev
169
- * Updated: Utilize `wp_doing_ajax()` function for our AJAX checks.
170
- * Updated: Clarify what is exported with the Post Types and Taxonomies spots for the Tools section.
171
- * Updated: Clarify that the listed post types to associate to a CPTUI taxonomy are public post types by default.
172
- * Updated: Make "Show In Rest" setting default to true for sake of easier Gutenberg integration in the future.
173
- * Fixed: Only register archive slug if has_archive is set to true.
174
- * Fixed: Error occurred when attempting to unset post types while editing a taxonomy.
175
- * Fixed: Prevent errors from non-existant callback functions during post type or taxonomy processing.
176
- * Fixed: Incorrect use of reserved taxonomy slugs function in a check for reserved post types.
177
- * Fixed: Make sure "No post type selected" alert trigger from both buttons on the taxonomy settings edit screen.
178
- * Fixed: Add our stylesheet only on our CPTUI pages. Fixes responsive bug on post editor screen.
179
- * Fixed: Removed duplicate "label" in taxonomy "get code" section.
180
-
181
- == Installation ==
182
-
183
- = Admin Installer via search =
184
- 1. Visit the Add New plugin screen and search for "custom post type ui".
185
- 2. Click the "Install Now" button.
186
- 3. Activate the plugin.
187
- 4. Navigate to the "CPTUI" Menu.
188
-
189
- = Admin Installer via zip =
190
- 1. Visit the Add New plugin screen and click the "Upload Plugin" button.
191
- 2. Click the "Browse..." button and select zip file from your computer.
192
- 3. Click "Install Now" button.
193
- 4. Once done uploading, activate Custom Post Type UI.
194
-
195
- = Manual =
196
- 1. Upload the Custom Post Type UI folder to the plugins directory in your WordPress installation.
197
- 2. Activate the plugin.
198
- 3. Navigate to the "CPTUI" Menu.
199
-
200
- That's it! Now you can easily start creating custom post types and taxonomies in WordPress.
201
-
202
- == Frequently Asked Questions ==
203
-
204
- #### User documentation
205
- Please see http://docs.pluginize.com/category/126-custom-post-type-ui
206
-
207
- #### Code/API documentation
208
- Please see http://codex.pluginize.com/cptui/
1
+ === Custom Post Type UI ===
2
+ Contributors: webdevstudios, pluginize, tw2113, vegasgeek, modemlooper, williamsba1
3
+ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3084056
4
+ Tags: custom post types, CPT, CMS, post, types, post type, taxonomy, tax, custom, content types, post types
5
+ Requires at least: 5.5
6
+ Tested up to: 5.5
7
+ Stable tag: 1.8.0
8
+ License: GPL-2.0+
9
+ Requires PHP: 5.6
10
+
11
+ Admin UI for creating custom post types and custom taxonomies for WordPress
12
+
13
+ == Description ==
14
+
15
+ Custom Post Type UI provides an easy to use interface for registering and managing custom post types and taxonomies for your website.
16
+
17
+ While CPTUI helps solve the problem of creating custom post types, displaying the data gleaned from them can be a whole new challenge. That’s why we created [Custom Post Type UI Extended](https://pluginize.com/product/custom-post-type-ui-extended/?utm_source=cptui-desription&utm_medium=text&utm_campaign=wporg). [View our Layouts page](https://pluginize.com/cpt-ui-extended-features/?utm_source=cptui-description-examples&utm_medium=text&utm_campaign=wporg) to see some examples that are available with Custom Post Type UI Extended.
18
+
19
+ Official development of Custom Post Type UI is on GitHub, with official stable releases published on WordPress.org. The GitHub repo can be found at [https://github.com/WebDevStudios/custom-post-type-ui](https://github.com/WebDevStudios/custom-post-type-ui). Please use the Support tab for potential bugs, issues, or enhancement ideas.
20
+
21
+ [Pluginize](https://pluginize.com/?utm_source=cptui&utm_medium=text&utm_campaign=wporg) was launched in 2016 by [WebDevStudios](https://webdevstudios.com/) to promote, support, and house all of their [WordPress products](https://pluginize.com/shop/?utm_source=cptui-&utm_medium=text&utm_campaign=wporg). Pluginize is not only [creating new products for WordPress all the time, like CPTUI Extended](https://pluginize.com/product/custom-post-type-ui-extended/?utm_source=cptui&utm_medium=text&utm_campaign=wporg), but also provides ongoing support and development for WordPress community favorites like [CMB2](https://wordpress.org/plugins/cmb2/) and more.
22
+
23
+ == Screenshots ==
24
+
25
+ 1. Add new post type screen and tab.
26
+ 2. Add new taxonomy screen and tab.
27
+ 3. Registered post types and taxonomies from CPTUI
28
+ 4. Import/Export Post Types screen.
29
+ 5. Get Code screen.
30
+ 6. Help/support screen.
31
+
32
+ == Changelog ==
33
+
34
+ = 1.8.0 - 2020-08-14 =
35
+ * Added: support for default terms with a custom taxonomy.
36
+ * Updated: Removed the forcing of underscores for post type slugs. Taxonomies are still forced.
37
+ * Fixed: jQuery compatibility issue with WordPress 5.5.0
38
+
39
+ = 1.7.5 - 2020-08-11 =
40
+ * Updated: Addressed UI issues with WordPress 5.5.0
41
+ * Updated: Moved required minimum WordPress version to 5.5.0
42
+
43
+ = 1.7.4 - 2020-03-17 =
44
+ * Added: Nonce admin verification for import functionality.
45
+ * Added: Extra escaping of markup and output for "Get Code" areas.
46
+
47
+ = 1.7.3 - 2020-02-05 =
48
+ * Updated: styles and appearance to better match WordPress core.
49
+ * Updated: Change newsletter service integration. Hey, sign up for our newsletter! Props @Oceas
50
+
51
+ = 1.7.2 - 2020-01-08 =
52
+ * Fixed: Duplicate entries for "delete_with_user" in get code.
53
+ * Fixed: Delete button for post types and taxonomies at bottom of page did not trigger dialog prompt.
54
+
55
+ = 1.7.1 - 2019-11-06 =
56
+ * Fixed: Random-ish redirects to the "Add new" tab for post types or taxonomies
57
+ * Fixed: JavaScript error when trying to delete a taxonomy.
58
+
59
+ = 1.7.0 - 2019-11-06 =
60
+ * Actually added this time: Delete with user support for post types. Managed to miss the code with 1.6.0 which was a long time ago.
61
+ * Added: Ability to disable registration of post types or taxonomies, via code filter, without deleting them completely from settings.
62
+ * Added: New post type labels introduced in WordPress 5.0.0.
63
+ * Added: Link to Dashicon documentation for when editing menu icon. Props @juliekuehl
64
+ * Added: Ability to automatically fill in additional labels based on chosen plural and singular label text.
65
+ * Updated: Added post type templates documentation to help section.
66
+ * Updated: Redirect user to the "add" tab if deleting the last post type or taxonomy created.
67
+ * Updated: Touched up tab markup to match semantic improvements provided by WordPress 5.2.0.
68
+ * Fixed: potential duplicate output of "parent_item_colon" with "Get Code" output.
69
+ * Misc: Added code of conduct file to github repo. Props GaryJones.
70
+
71
+ == Upgrade Notice ==
72
+
73
+ = 1.8.0 - 2020-08-14 =
74
+ * Added: support for default terms with a custom taxonomy.
75
+ * Updated: Removed the forcing of underscores for post type slugs. Taxonomies are still forced.
76
+ * Fixed: jQuery compatibility issue with WordPress 5.5.0
77
+
78
+ = 1.7.5 - 2020-08-11 =
79
+ * Updated: Addressed UI issues with WordPress 5.5.0
80
+ * Updated: Moved required minimum WordPress version to 5.5.0
81
+
82
+ = 1.7.4 - 2020-03-17 =
83
+ * Added: Nonce admin verification for import functionality.
84
+ * Added: Extra escaping of markup and output for "Get Code" areas.
85
+
86
+ = 1.7.3 - 2020-02-05 =
87
+ * Updated: styles and appearance to better match WordPress core.
88
+ * Updated: Change newsletter service integration. Hey, sign up for our newsletter! Props @Oceas
89
+
90
+ = 1.7.2 - 2020-01-08 =
91
+ * Fixed: Duplicate entries for "delete_with_user" in get code.
92
+ * Fixed: Delete button for post types and taxonomies at bottom of page did not trigger dialog prompt.
93
+
94
+ = 1.7.1 - 2019-11-06 =
95
+ * Fixed: Random-ish redirects to the "Add new" tab for post types or taxonomies
96
+ * Fixed: JavaScript error when trying to delete a taxonomy.
97
+
98
+ = 1.7.0 - 2019-11-06 =
99
+ * Actually added this time: Delete with user support for post types. Managed to miss the code with 1.6.0 which was a long time ago.
100
+ * Added: Ability to disable registration of post types or taxonomies, via code filter, without deleting them completely from settings.
101
+ * Added: New post type labels introduced in WordPress 5.0.0.
102
+ * Added: Link to Dashicon documentation for when editing menu icon. Props @juliekuehl
103
+ * Added: Ability to automatically fill in additional labels based on chosen plural and singular label text.
104
+ * Updated: Added post type templates documentation to help section.
105
+ * Updated: Redirect user to the "add" tab if deleting the last post type or taxonomy created.
106
+ * Updated: Touched up tab markup to match semantic improvements provided by WordPress 5.2.0.
107
+ * Fixed: potential duplicate output of "parent_item_colon" with "Get Code" output.
108
+ * Misc: Added code of conduct file to github repo. Props GaryJones.
109
+
110
+ == Installation ==
111
+
112
+ = Admin Installer via search =
113
+ 1. Visit the Add New plugin screen and search for "custom post type ui".
114
+ 2. Click the "Install Now" button.
115
+ 3. Activate the plugin.
116
+ 4. Navigate to the "CPTUI" Menu.
117
+
118
+ = Admin Installer via zip =
119
+ 1. Visit the Add New plugin screen and click the "Upload Plugin" button.
120
+ 2. Click the "Browse..." button and select zip file from your computer.
121
+ 3. Click "Install Now" button.
122
+ 4. Once done uploading, activate Custom Post Type UI.
123
+
124
+ = Manual =
125
+ 1. Upload the Custom Post Type UI folder to the plugins directory in your WordPress installation.
126
+ 2. Activate the plugin.
127
+ 3. Navigate to the "CPTUI" Menu.
128
+
129
+ That's it! Now you can easily start creating custom post types and taxonomies in WordPress.
130
+
131
+ == Frequently Asked Questions ==
132
+
133
+ #### User documentation
134
+ Please see http://docs.pluginize.com/category/126-custom-post-type-ui
135
+
136
+ #### Code/API documentation
137
+ Please see http://codex.pluginize.com/cptui/