XML-RPC server wrongly conflates post_status "future" with "publish"
|Reported by:||kailasa||Owned by:||markoheijnen|
Word Press Core:
is broadcasting "future" as "publish" with this code
// Consider future posts as published if ( $post_fields['post_status'] === 'future' ) $post_fields['post_status'] = 'publish';
this presents a problem for someone who really needs to use XMLRPC to talk to the wp database (via wp.getPosts/WP_QUERY et al....) and distinguish between published posts and scheduled posts.
In a real media world (of books and magazines, articles, PHD dissertations etc.) "Published" means "Now available to the public."
I can't really understand why this decision was made and would consider it a bad one. I suppose the author that file is thinking "OK the post is done and ready to go... it's just waiting for the clock to roll around... so it is effectively published." But this just shows ignorance or lack of experience in the real world of media distribution.
If a variable in a framework has 8 discreet assigned values by default, they are there, separate and distinct, for very good reasons. Future is *not* publish. The former does not appear on the blog, the latter does... they are different.
The core code should not be making decisions to override these distinctions and force developers to "unconflate" two values that someone had the not-so-bright idea to make equal.
wp.getPosts has a filter struct as one optional paramater... I should be free to pass "post_type:POST; post_status:future" as a filter so that my wp.getPosts requests only return posts with a time of now/today or earlier (i.e. post_status not equal to "future")
We have two options. We can either get all posts and then in our LiveCode web app framework (revIgniter) write a routine to parse them all for some date range to ignore all that are in the future. This a horrible hack...and will eat CPU...
OR the other option is we hack the core and comment out the offending two lines in
(which I have done for now)
But of course, we then break the Golden Rule "Don't Hack The Core!" and must remember to keep copies of our version of class-wp-xmlrpc-server.php to replace the one that comes in on upgrade... but of course this is really bad, because perhaps the next upgrade to WP has major changes to the class-wp-xmlrpc-server.php...We all know this is not best practices....
So I'm forced to go in after each upgrade and comment out the silly decision to tell the world that "consider bananas (future) equal to apples (publish)"
Please remove that code from
this opens the door to a feature request to make the XML-RPC framework customizable and extensible. I will submit that as a separate ticket but refer back to this issue. (if some developer would like "future" to be equated with "publish"... ok, fine, but that should be a "theme" option.
Change History (12)
comment:2 markoheijnen — 7 months ago
- Milestone changed from Awaiting Review to 3.7
- Severity changed from major to normal
- Version set to 3.4
comment:11 markoheijnen — 6 months ago
- Owner set to markoheijnen
- Status changed from new to assigned