In einer WordPress Installation trat gestern ein sehr nerviger Fehler auf. Beim Aktualisieren einer statischen Seite bekam ich folgende Meldung:
"Warning: implode() [function.implode]: Bad arguments. in wp-includes/post.php on line 1762"
Die Änderungen auf der Seite wurden zwar gespeichert aber ich musste mühsam via “Back” zurück zum Admin-Menu klicken da ich nur die Weiße Seite mit der Fehlermeldung sah. Folgende Änderungen in der Post.php beheben das Problem.
In der Ursprungsdatei steht ab Zeile 1762:
$check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . implode("', '", $wpdb->escape($hierarchical_post_types)) . "' ) AND ID != %d AND post_parent = %d LIMIT 1";
Das wird ausgetauscht gegen:
$hierarchical_post_types_string = implode("', '", $hierarchical_post_types);
$hierarchical_post_types_string = addslashes($hierarchical_post_types_string);
$check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . $hierarchical_post_types_string . "' ) AND ID != %d AND post_parent = %d LIMIT 1";
Dann sollte alles wieder funktionieren. Dies ist natürlich nur ein Workaround, sollte man eine ältere WordPress-Version nutzen hilft auch ein reguläres Update auf die aktuelle Version.