WordPress.org

Make WordPress Core

Opened 11 months ago

Last modified 10 months ago

#45404 new defect (bug)

Autosave fails for custom post type item that belongs to a non-publicly_queryable post type

Reported by: kmgalanakis Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version: 5.0
Component: Editor Keywords:
Focuses: rest-api Cc:
PR Number:

Description

To reproduce this create a CPT:

<?php
function custom_post_type() {

        $labels = array(
                'name'                  => _x( 'Post Types', 'Post Type General Name', 'text_domain' ),
                'singular_name'         => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ),
                'menu_name'             => __( 'Post Types', 'text_domain' ),
                'name_admin_bar'        => __( 'Post Type', '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'                 => __( 'Post Type', 'text_domain' ),
                'description'           => __( 'Post Type Description', 'text_domain' ),
                'labels'                => $labels,
                'supports'              => array( 'title', 'editor' ),
                'taxonomies'            => array( 'category', 'post_tag' ),
                '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'       => 'page',
                'show_in_rest'          => true,
        );
        register_post_type( 'post_type', $args );

}
add_action( 'init', 'custom_post_type', 0 );

Then create an item and publish. After the item is saved, edit the title and wait until the autosave is triggered. The autosave fails without any JS error.

Also if you make the CPT set "public" to false but "publicly_queryable" to true and create and publish an item after I refresh the editor I get the following JS error:

TypeError: Cannot read property 'prefix' of null
    at PostLink (edit-post.js?ver=3.1.2:4769)
    at ph (react-dom.min.js?ver=16.6.3:97)
    at eg (react-dom.min.js?ver=16.6.3:125)
    at fg (react-dom.min.js?ver=16.6.3:126)
    at wc (react-dom.min.js?ver=16.6.3:138)
    at fa (react-dom.min.js?ver=16.6.3:137)
    at gg (react-dom.min.js?ver=16.6.3:135)
    at Ca (react-dom.min.js?ver=16.6.3:133)
    at Object.enqueueSetState (react-dom.min.js?ver=16.6.3:191)
    at ComponentWithSelect.q.setState (react.min.js?ver=16.6.3:20)

Change History (5)

#1 @jorbin
11 months ago

@danielbachhuber I think I remember from github that you worked on the autsaves in Gutenberg, can you take a look?

#2 @danielbachhuber
11 months ago

@jorbin Next week would be the earliest I can debug this.

#3 @danielbachhuber
11 months ago

  • Focuses rest-api added

#4 @lonelyvegan
11 months ago

  • Milestone changed from Awaiting Review to Future Release
Note: See TracTickets for help on using tickets.