admin管理员组

文章数量:1404923

Cannot modify header information - headers already sent by (output started at /wp-includes/class-wp-post-type.php:613) in /wp-includes/functions.php on line 6029

This error has seemed to follow me around since WP 5.3 where 'supports' needs to be an array. I've been able to successfully clear out the error for a small handful of sites by changing the order of the CPT args (throwing 'supports' at the end), but on others, the error still persists. I've always used an array for 'supports', but for some reason, this error is still persisting... Maybe it's something else in the CPT? I know it's the CPT for sure because removing the CPT code resolves the error. Can anyone tell me what I'm missing?

function rich_review() {

$labels = array(
    'name'                  => _x( 'Reviews', 'Post Type General Name', 'text_domain' ),
    'singular_name'         => _x( 'Review', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'             => __( 'Reviews', 'text_domain' ),
    'name_admin_bar'        => __( 'Reviews', 'text_domain' ),
    'archives'              => __( 'Review Archives', 'text_domain' ),
    'attributes'            => __( 'Review 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'                 => __( 'Review', 'text_domain' ),
    'description'           => __( 'Rich reviews', 'text_domain' ),
    'labels'                => $labels,
    'taxonomies'            => 'rich_review_tax',
    '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'    => true,
    'capability_type'       => 'page',
    'supports'              => array('title', 'editor'),
);
register_post_type( 'reviews', $args );

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

Cannot modify header information - headers already sent by (output started at /wp-includes/class-wp-post-type.php:613) in /wp-includes/functions.php on line 6029

This error has seemed to follow me around since WP 5.3 where 'supports' needs to be an array. I've been able to successfully clear out the error for a small handful of sites by changing the order of the CPT args (throwing 'supports' at the end), but on others, the error still persists. I've always used an array for 'supports', but for some reason, this error is still persisting... Maybe it's something else in the CPT? I know it's the CPT for sure because removing the CPT code resolves the error. Can anyone tell me what I'm missing?

function rich_review() {

$labels = array(
    'name'                  => _x( 'Reviews', 'Post Type General Name', 'text_domain' ),
    'singular_name'         => _x( 'Review', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'             => __( 'Reviews', 'text_domain' ),
    'name_admin_bar'        => __( 'Reviews', 'text_domain' ),
    'archives'              => __( 'Review Archives', 'text_domain' ),
    'attributes'            => __( 'Review 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'                 => __( 'Review', 'text_domain' ),
    'description'           => __( 'Rich reviews', 'text_domain' ),
    'labels'                => $labels,
    'taxonomies'            => 'rich_review_tax',
    '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'    => true,
    'capability_type'       => 'page',
    'supports'              => array('title', 'editor'),
);
register_post_type( 'reviews', $args );

}
add_action( 'init', 'rich_review', 0 );
Share Improve this question asked Dec 24, 2019 at 15:22 The9mmThe9mm 335 bronze badges
Add a comment  | 

2 Answers 2

Reset to default 0

I don't know if it'll help but try putting the supported functions into their own variable array like you do with labels.

$supports = array( 
     'title',
     'editor'
);

Then, under $args, use 'supports' => $supports.

I use that for 'labels', 'supports' and 'taxonomies'.

Should also note that it's good practice to make your variables a bit more unique to the post-type. So $revw_labels, $revw_supports, $revw_taxonomiesand make sure you input custom text_domains instead of using the generic placeholder. That'd be the text domain of either your plugin or theme.

I've managed to figure out what's causing this error. For some reason, 'taxonomies' is looking for an array, even if I only have one taxonomy I'm relating it to. Changing the 'taxonomies' value like so resolved the PHP error: 'taxonomies' => array( 'rich_review_tax' ),

本文标签: custom post typesCannot modify header informationheader already sent (CPT related)