Opened 17 years ago
Closed 17 years ago
#7299 closed defect (bug) (fixed)
AtomPub: Draft posts cannot be edited without turning them published
Reported by: |
|
Owned by: |
|
---|---|---|---|
Milestone: | 2.6.1 | Priority: | high |
Severity: | normal | Version: | 2.6 |
Component: | XML-RPC | Keywords: | has-patch |
Focuses: | Cc: |
Description
The logic in put_post, in wp-app.php correctly extracts a "publish" or "draft" status for a post by looking for a draft entry in the supplied post. If there is one, and it specifies "yes", then the updated entry should be set to "Unpublished" - otherwise it should be published.
The problem is with some seemingly unnecessary and flawed code which later overrides that determination with some faulty logic:
let's not go backwards and make something draft again.
if(!$publish && $post_status == 'draft') {
$post_status = ($publish) ? 'publish' : 'draft';
} elseif($publish) {
$post_status = 'publish';
}
See how it relies on an unset $post_status field, which hasn't been set in this function. Furthermore, the logic is flawed because in the case where !$publish is true, it goes on to test for ($publish) being true.
I don't think this faulty logic belongs in here at all. What it does in my tests is always overrides the post_status to be 'publish', no matter what the client has specified.
Patch attached to use the basic, good logic as the sole determination for publish status of the post.
(In [8374]) Ensure that AtomPub does not auto-publish draft posts when they are edited. Fixes #7299 for trunk props redsweater.