Incorrect Datetime Bug Fix

Fixes sql_mode values that cause error:Incorrect datetime value: '0000-00-00 00:00:00' for column 'post_date_gmt' at row 1

Author:Eddie Moya (profile at wordpress.org)
WordPress version required:
WordPress version tested:3.2.1
Plugin version:1.1
Added to WordPress repository:23-08-2011
Last updated:07-01-2013
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:100
Rated by:2
Plugin URI:http://eddiemoya.com/plugins/incorrect-dateti...
Total downloads:2 820
Active installs:80+
plugin download
Click to start download

This plugin was create to work around a problem caused by certain configurations in MySQL that lead to several odd symptoms including but not limited to:

  • Loss of ability to create new posts
  • Loss of ability to update posts
  • Errors regarding invalid timestamps
  • Admin interface reverts to lowest permissions ex:‘Publish’ button says ‘Submit Draft’.

In addition, this problem is often accompanied by an error like the following:

WordPress database error: [Incorrect datetime value: '0000-00-00 00:00:00' for column 'post_date_gmt' at row 1]
INSERT INTO 'mg_posts' ('post_author','post_date','post_date_gmt','post_content','post_content_filtered','post_title',
'post_excerpt','post_status','post_type','comment_status','ping_status','post_password','post_name','to_ping','pinged',
'post_modified','post_modified_gmt','post_parent','menu_order','guid') VALUES (’1′,’2011-08-23 03:32:43′,
’0000-00-00 00:00:00′,”,”,’Auto Draft’,”,’auto-draft’,'post’,'closed’,'open’,”,”,”,”,’2011-08-23 03:32:43′,’0000-00-00 00:00:00′,’0′,’0′,”)

The inability to pass zero dates breaks the ability to actually create a new post, but it also seems to have the odd secondary effect of confusing the heck out of nonces (noces are a security feature), probably because they too rely on timestamps.

This plugin strips out the sql_modes listed below from @@SESSION, thereby eliminating the problem while only effecting database sessions WordPress starts and not the whole database.


ChangeLog