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 | Custom Post Type UI |
Version | 1.8.0 |
Comparing to | |
See all releases |
Code changes from version 1.7.5 to 1.8.0
- css/cptui.css +1 -1
- custom-post-type-ui.php +17 -3
- inc/about.php +4 -8
- inc/taxonomies.php +14 -0
- inc/tools.php +21 -0
- js/cptui.js +6 -19
- js/cptui.min.js +1 -1
- 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:
|
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.
|
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.
|
34 |
-
define( 'CPTUI_VERSION', '1.
|
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
|
89 |
-
<p><?php esc_html_e( '
|
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
|
97 |
-
<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).
|
82 |
}
|
83 |
}
|
84 |
|
@@ -131,8 +131,11 @@ postboxes.add_postbox_toggles(pagenow);
|
|
131 |
}
|
132 |
|
133 |
function replaceSpecialCharacters(s) {
|
134 |
-
|
135 |
-
|
|
|
|
|
|
|
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){
|
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
|
7 |
-
Stable tag: 1.
|
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.
|
35 |
-
*
|
36 |
-
* Updated:
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
*
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
*
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
*
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
* Fixed:
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
*
|
57 |
-
*
|
58 |
-
|
59 |
-
|
60 |
-
*
|
61 |
-
*
|
62 |
-
*
|
63 |
-
*
|
64 |
-
*
|
65 |
-
|
66 |
-
|
67 |
-
*
|
68 |
-
* Fixed:
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
*
|
75 |
-
* Updated:
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
*
|
80 |
-
*
|
81 |
-
|
82 |
-
|
83 |
-
* Added:
|
84 |
-
* Added:
|
85 |
-
|
86 |
-
|
87 |
-
*
|
88 |
-
*
|
89 |
-
|
90 |
-
|
91 |
-
*
|
92 |
-
*
|
93 |
-
|
94 |
-
|
95 |
-
*
|
96 |
-
*
|
97 |
-
|
98 |
-
|
99 |
-
*
|
100 |
-
*
|
101 |
-
*
|
102 |
-
*
|
103 |
-
*
|
104 |
-
*
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
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/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|