Opened 5 years ago
Closed 5 years ago
#7299 closed defect (bug) (fixed)
AtomPub: Draft posts cannot be edited without turning them published
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Priority: | high | Milestone: | 2.6.1 |
| Component: | XML-RPC | Version: | 2.6 |
| Severity: | normal | Keywords: | has-patch |
| Cc: | redsweater, josephscott |
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.
Attachments (1)
Change History (6)
redsweater — 5 years ago
comment:1
josephscott — 5 years ago
- Cc josephscott added
comment:2
redsweater — 5 years ago
- Keywords has-patch added
- Milestone changed from 2.7 to 2.6.1
- Resolution fixed deleted
- Status changed from closed to reopened
re-opening for 2.6.1

(In [8374]) Ensure that AtomPub does not auto-publish draft posts when they are edited. Fixes #7299 for trunk props redsweater.