[wp-trac] [WordPress Trac] #43219: wp.api.models.Post.save method should not send date fields for drafts
WordPress Trac
noreply at wordpress.org
Sat Feb 3 01:27:04 UTC 2018
#43219: wp.api.models.Post.save method should not send date fields for drafts
--------------------------+-----------------------------
Reporter: goldenapples | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: REST API | Version: trunk
Severity: normal | Keywords:
Focuses: |
--------------------------+-----------------------------
When a new Post model is created through the REST API client, it will be
hydrated complete with "date_gmt" and "date_modified_gmt" properties as a
result of the changeset in https://core.trac.wordpress.org/changeset/40115
However, those properties are not filtered out before saving the model,
and so the date_gmt field is posted as part of the save request. This
causes inconsistencies with the way core leaves the post_date_gmt field as
zeroes for unpublished posts.
In addition, if the "date" field is posted when saving the model, a
"date_gmt" field will be created from it in the
WP_REST_Posts_Controller::prepare_item_for_database method.
I'm not sure what the best way of addressing this is, but it seems like
two changes are in order.
* Perhaps the API schema for a post could set a flag indicating whether
the value returned for 'date_gmt' or 'date_modified_gmt' is a real value
or a shimmed date that should not be saved, and, if that flag is set, the
Backbone client would be responsible for unsetting that field before
saving.
* In WP_REST_Posts_Controller::prepare_item_for_database, a draft post
with a "date" field set shouldn't be passing a value in post_date_gmt
along to wp_update_post - that's different behavior than saving in any
other way and is unexpected. I could well be missing something, but it
seems like that logic could be removed safely.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/43219>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list