Make WordPress Core

Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#45364 closed defect (bug) (duplicate)

Editing a non-publicly-queryable (or non-public) custom post type item with the new editor, creates a JS error.

Reported by: kmgalanakis's profile kmgalanakis Owned by:
Milestone: Priority: normal
Severity: normal Version: 5.0
Component: REST API Keywords:
Focuses: Cc:

Description

I started seeing this issue in WP 5.0 beta5

When editing a post in the new editor, from a custom post type having the property "publicly_queryable" set to "false", the editor creates a JS error.

react-dom.min.js?ver=5.0-beta5-43907:104 TypeError: Cannot read property 'split' of undefined
    at $n (editor.min.js?ver=5.0-beta5-43907:55)
    at data.min.js?ver=5.0-beta5-43907:1
    at edit-post.min.js?ver=5.0-beta5-43907:12
    at n (data.min.js?ver=5.0-beta5-43907:1)
    at new r (data.min.js?ver=5.0-beta5-43907:1)
    at zf (react-dom.min.js?ver=5.0-beta5-43907:69)
    at Mf (react-dom.min.js?ver=5.0-beta5-43907:87)
    at ph (react-dom.min.js?ver=5.0-beta5-43907:98)
    at eg (react-dom.min.js?ver=5.0-beta5-43907:125)
    at fg (react-dom.min.js?ver=5.0-beta5-43907:126)

To reproduce this, register a CPT custom post type using:

$labels = array(
	'name'                  => _x( 'CPTs', 'Post Type General Name', 'text_domain' ),
	'singular_name'         => _x( 'CPT', 'Post Type Singular Name', 'text_domain' ),
	'menu_name'             => __( 'CPTs', 'text_domain' ),
	'name_admin_bar'        => __( 'CPT', 'text_domain' ),
	'archives'              => __( 'Item Archives', 'text_domain' ),
	'attributes'            => __( 'Item Attributes', 'text_domain' ),
	'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
	'all_items'             => __( 'All Items', 'text_domain' ),
	'add_new_item'          => __( 'Add New Item', 'text_domain' ),
	'add_new'               => __( 'Add New', 'text_domain' ),
	'new_item'              => __( 'New Item', 'text_domain' ),
	'edit_item'             => __( 'Edit Item', 'text_domain' ),
	'update_item'           => __( 'Update Item', 'text_domain' ),
	'view_item'             => __( 'View Item', 'text_domain' ),
	'view_items'            => __( 'View Items', 'text_domain' ),
	'search_items'          => __( 'Search Item', 'text_domain' ),
	'not_found'             => __( 'Not found', 'text_domain' ),
	'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
	'featured_image'        => __( 'Featured Image', 'text_domain' ),
	'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
	'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
	'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
	'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
	'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
	'items_list'            => __( 'Items list', 'text_domain' ),
	'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
	'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
);
$args = array(
	'label'                 => __( 'CPT', 'text_domain' ),
	'description'           => __( 'CPT Desc', 'text_domain' ),
	'labels'                => $labels,
	'supports'              => array( 'title', 'editor' ),
	'hierarchical'          => false,
	'public'                => true,
	'show_ui'               => true,
	'show_in_menu'          => true,
	'menu_position'         => 5,
	'show_in_admin_bar'     => true,
	'show_in_nav_menus'     => true,
	'can_export'            => true,
	'has_archive'           => true,
	'exclude_from_search'   => false,
	'publicly_queryable'    => false,
	'capability_type'       => 'post',
	'show_in_rest'          => true,
);
register_post_type( 'cpt', $args );

and try to add a new CPT item.

Change History (7)

#1 @kmgalanakis
6 years ago

  • Component changed from General to Editor
  • Version set to 5.0

This ticket was mentioned in Slack in #core-editor by kmgalanakis. View the logs.


6 years ago

#3 @kmgalanakis
6 years ago

The issue can also be reproduced if the "public" property of the post type is set to false.

#4 @kmgalanakis
6 years ago

  • Summary changed from Editing a non-publicly-queryable custom post type item with the new editor, creates a JS error. to Editing a non-publicly-queryable (or non-public) custom post type item with the new editor, creates a JS error.

#5 @aduth
6 years ago

I can reproduce this from 5.0 branch, but not in the latest Gutenberg plugin master.

The split error specifically occurs from this line:

https://github.com/WordPress/gutenberg/blob/9591c904b03c7a82dd06db210316360d5d138de2/packages/editor/src/store/selectors.js#L2116

The permalink_template field is new, monkey-patched to the REST API by Gutenberg, tracked for formal inclusion at #45017.

#6 @matveb
6 years ago

  • Component changed from Editor to REST API
  • Resolution set to fixed
  • Status changed from new to closed

Closing as done in #45017.

#7 @ocean90
6 years ago

  • Milestone Awaiting Review deleted
  • Resolution changed from fixed to duplicate

Duplicate of #45017.

Note: See TracTickets for help on using tickets.