Ich möchte die Aktualisierung der Plugin-Optionen automatisieren. Es gibt einige Dinge, die ich oft wiederhole.
Ich weiß, dass ich mit wp-cli einfache Optionen wie diese aktualisieren kann:
php wp-cli.phar option update blog_public 1
Einige Plugin-Optionen speichern ihre Optionen jedoch in einer serialisierten Zeichenfolge.
Beispiel für serialisierten Optionswert in wp_options:
a:9:{s:4:"from";s:21:"[email protected]";s:8:"fromname";s:51:"xxx";s:4:"host";s:13:"smtp.xx.com";s:10:"smtpsecure";s:3:"ssl";s:4:"port";s:3:"465";s:8:"smtpauth";s:3:"yes";s:8:"username";s:21:"[email protected]";s:8:"password";s:13:"xxx";s:10:"deactivate";s:0:"";}
Wie aktualisiere ich diese Optionen?
option update
in einfache Anführungszeichen setzen. Siehe meine Implementierung in Zeile 61 hier: gist.github.com/squarecandy/cfdead55ca1d84496044WP-CLI ist definitiv die Antwort auf diese Frage nach dem Update auf 1.4.0 , die die eingeführte zupfen und Patch für den Zugriff auf serialisierten Daten in Wordpress - Befehle.
Der Befehl pluck verwendet dieses Format zum Abrufen serialisierter Werte
Zum Beispiel können Sie in der Option active_plugins das erste Element greifen
Der Befehl patch verwendet dieses Format zum Einfügen, Aktualisieren oder Entfernen von serialisierten Werten (die Aktion).
Das Löschen des ersten active_plugins würde so aussehen
Das gleiche Zupfen und Patchen wurde auch für andere Befehle wie Postmeta hinzugefügt. Sie können jetzt WP-CLI verwenden, um einige coole Schleifen zum programmgesteuerten Aktualisieren von WordPress-serialisierten Daten durchzuführen
quelle
So mache ich es in einem Bash-Skript:
quelle
Der WP-CLI- Befehl
option
verwendet die WordPress- Options-API , um seine Arbeit zu erledigen. B. mit dem Unterbefehlupdate
, einer korrekten Eingabe,array
und sollte dies mit WP-CLI möglich sein. Sie sollten den--format
Parameter hier verwenden, um sicherzustellen, dass Sie den gleichen erhalten,json
funktioniert im Allgemeinen gut für denupdate
Unterbefehl. Beachten Sie, dass der Unterbefehlget
die Option unserialized zurückgeben sollte, da die Options-API verwendet wird, die Sie dann bei anderen / neuen Installationen speichern, ändern und / oder übertragen / einrichten können.quelle
wp option get wp_smtp_options > savedconfiguration.txt
wp option update wp_smtp_options < savedconfiguration.txt
erste Befehl speichert als Array, der zweite akzeptiert kein Array. Ich denke, ich sollte es zuerst serialisieren, wissen Sie, wie es geht?format
Parameter zu nutzen? @ Lalo bearbeiten: gerade gesehen, dass Sie es herausgefunden haben ..format
Parameter verfügbar sind . Ich frage mich, ob es möglich sein könnte, ohne eine Zwischendatei zu verwenden, wie ich sie in meiner Antwort geschrieben habe.format
Parameter zu erhalten, die sich manchmal von (Unter-) Befehl zu (Unter-) Befehl unterscheiden. Dies ist beispielsweise möglich, indem ein Bash-Skript geschrieben und die Daten in einer Variablen gespeichert werden. @lalo--format
verfügbaren Optionen sind: github.com/wp-cli/wp-cli/blob/master/php/commands/…