Für Menschen · Seien Sie begeistert und Sie werden begeistern !

WordPress bietet seit der Version 2.2 die automatische Sicherung des Editorbereiches. Dabei speichert WordPress alle 120s/60s (< Version 2.3/ ≥ Version 2.5) den Inhalt. Dieser Wert wird in einer Konstanten übergeben und kann mittels Plugin oder anderen Funktionen genutzt werden; ebenfalls kann der Wert beeinflusst werden.
Bis Version 2.3* war diese Funktion, die mittels Ajax-Technologie realisiert wird, nicht immer das, was der Name verspricht und es gab den einen oder anderen Fehler. Ab Version 2.5 von WordPress wurde auch hier gefeilt und die Funktion macht in den Tests eine recht guten Eindruck; mal sehen was der Livebetrieb vieler User bringen wird.
Hinterlegt man in einem Plugin oder in der wp-config.php die Definition des Intervalls, dann kann man die Zeit einfach und konsequent beeinflussen. Das Speichern findet trotzdem nur statt, wenn Aktivitäten im Editor stattfinden, somit könnte man auch den Intervall auf 1 Sekunde setzen - für alle besonders ängstlichen Autoren.
define( 'AUTOSAVE_INTERVAL', 120 ); // Autosave interval

Der Wert wird dann in der Funktion wp_just_in_time_script_localization() genutzt, zu finden in wp-includes/script-loader.php.
Der folgenden kleine Snippet schaltet das Script für die Aufgabe des Autosave ab, damit gibt es in WordPress keinerlei Autosave mehr. Der Code gehört in ein Plugin oder weniger gut, in die functions.php des Themes.
function fb_disable_autosave() {
wp_deregister_script( 'autosave' );
}
add_action( 'wp_print_scripts', 'fb_disable_autosave' );
Natürlich lassen sich ebenfalls die Texte verändern, allerdings ist hier ein Eingreifen nicht zu empfehlen und wem die Ausgabe nicht gefällt, der sollte lieber mit Hilfe der Sprachdatei auf die Begriffe eingreifen oder via Plugin den String ändern.
Für Coder sind folgende Syntax interessant.
wp-includes/script-loader.php
'savingText' => __('Saving Draft…')
wp-admin/admin-ajax.php
$message = sprintf( __('Draft Saved at %s.'), date( __('g:i:s a'), current_time( 'timestamp', true ) ) );
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 980 Beiträge, 18722 Kommentare in 14 Kategorien und 464 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
19. März 2008 um 20:50
Das ist doch mal ne tolle Sache, da freu ich mich dann doch auf 2.5
14. Mai 2008 um 19:17
21. September 2009 um 12:45
Ich beobachte derzeit in sehr merkwürdiges Phänomen bei mir lokal in einer WordPress-Installation. Der Button 'Artikel aktualisieren' flackert voll merkwürdig und die CPU-Last meiner Rechners steig dramatisch an, wenn ich die Seite zum Bearbeiten eines Artikels lade. Ich habe alle Plugins ausgelagert und auch den TinyMCE abgeschaltet und dennoch besteht das Problem weiter.
Ich habe Autosave eigentlich deaktivert:
define('AUTOSAVE_INTERVAL', false);
und in der functions.php:
// Toete Autosave
function disableAutoSave(){
wp_deregister_script('autosave');
}
dennoch erscheint in der Artikel-Ansicht:
Ich blicke das nicht und ich denke dieser Flackern des Buttons könnte mit Autosave zusammenhängen.
@Frank:
Vielleicht hast du einen Tipp für mich.
@the rest:
Any ideas?
21. September 2009 um 14:08
@Sebastian:
define('AUTOSAVE_INTERVAL', false);ist nicht möglich; es wird ein Integer-Wert erwartet. Um den Autosave wirklich inaktiv zu schalten, muss das JS inaktiv sein, was du ja schon versucht hast; allerdings sehe ich nicht, wo du die Funktion aufrufst. Mache es mal so, in die functions.php des Themes:function disableAutosave() {
wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disableAutosave' );
21. September 2009 um 14:14
Vielen Dank für den Hinweis.
Ich hatte auch erneut gegoogelt und gesehen, dass mein Aufruf in der functions.php nicht vollständig war.
Ich habs eingebaut aber auch das brachte es nicht. Erst nachdem ich CMS Post Control installiert habe und dort in den Optionen 'Autosave' deaktiviert habe, ging es. Vielleicht war es auch ein Cache-Problem, dass es nach der Ergänzung in der functions.php nicht auf Anhieb geklappt hat, nun ist es auf jeden Fall aus und der Button flackert nicht mehr. Mal sehen, ob das Problem damit wirklich behoben ist.
Ich melde mich wieder
6. Mai 2010 um 15:33
Hi Sebastian,
scheinbar kennst Du Dich mit dem autosave aus? Ich würde gerne eine Javascript-Funktion aufrufen, wenn Autosave erfolgreich war. Weisst Du zufällig, wie so was geht? Ich habe versucht, das in die admin-ajax.php reinzuschreiben, bekomme aber dabei leider einen Error: header already sent...
7. Mai 2010 um 11:19
Hi Rasso,
grundsätzlich möchte ich dir empfehlen nicht mit den Core-Dateien von WordPress zu arbeiten, denn das ist riskant und wenn du ein Update machst, sind die Änderungen möglicherweise pfutsch - sehr wahrscheinlich sogar.
Du solltest mit der functions.php arbeiten!
Ich habe gerade mal nach autosave gegoggelt und geschaut, ob es da etwas gibt, mit dem man arbeiten könnte.
Es gibt da eine WordPress-Funktion, die dieses Autosave steuert und mit der könntest du wahrscheinlich auch arbeiten.
Mehr kann ich dir bis dato nicht sagen! Jetzt bist du wahrscheinlich nur wenig schlauer als vorher.
Es gibt ein Plugin, welches ich mir mal näher anschauen wollte: revision control
vielleicht ist das auch interessant für dich.
9. Mai 2010 um 18:03
Hi Sebastian,
Wie Du schon sagst, ich bin jetzt nur wenig schlauer. Bin halt eher ein Grafikfuzzie...
Trotzdem danke für die Antwort. Wenn Du noch was dazu rausbekommst, freue ich mich immer über Updates!