WordPress Version: 5.5
/**
* Filters changeset post data upon insert to ensure post_name is intact.
*
* This is needed to prevent the post_name from being dropped when the post is
* transitioned into pending status by a contributor.
*
* @since 4.7.0
*
* @see wp_insert_post()
*
* @param array $post_data An array of slashed post data.
* @param array $supplied_post_data An array of sanitized, but otherwise unmodified post data.
* @return array Filtered data.
*/
function _wp_customize_changeset_filter_insert_post_data($post_data, $supplied_post_data)
{
if (isset($post_data['post_type']) && 'customize_changeset' === $post_data['post_type']) {
// Prevent post_name from being dropped, such as when contributor saves a changeset post as pending.
if (empty($post_data['post_name']) && !empty($supplied_post_data['post_name'])) {
$post_data['post_name'] = $supplied_post_data['post_name'];
}
}
return $post_data;
}