プラグインオプションの更新を自動化したい私がよく繰り返すことがいくつかあります。
wp-cli を使うと、このような簡単なオプションを更新できることがわかります。
php wp-cli.phar option update blog_public 1
ただし、プラグインオプションによっては、オプションをシリアル化された文字列に保存するものがあります。
Wp_optionsの直列化されたoption_valueの例:
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:"";}
それらのオプションを更新するには?
自分で解決した、これはそれを行う方法です:
プログラムでシリアル化されたオプションを更新したい場合は、
wp-cli.orgからwp-cliをダウンロードしてください。
あなたが使用しているオプションの「キー」が何かを調べてください。この例では、キーは "wp_smtp_options"です。
キーがわからない場合は、wp_optionsテーブルを検索して見つけ出してください。
例:select * from wp_options where option_name like '%smtp%'
鍵がわかったので、次のコマンドを使って設定をjsonファイルに保存します。
php wp-cli.phar option get wp_smtp_options --format=json > my_saved_config.txt
その設定を復元したいときはいつでもこのコマンドを使用してください
php wp-cli.phar option update wp_smtp_options --format=json < my_saved_config.txt
ノート:
この目的のために中間ファイルを使用する必要がないのは素晴らしいことです。誰かがそれを行う方法を知っていますか?
WP-CLIは、WordPressでシリアライズされたデータにアクセスするための pluck および patch コマンドを導入した1.4.0への更新後の間違いなくこれに対する答えです。
Pluckコマンドはシリアル化された値を取得するためにこのフォーマットを取ります
wp option pluck <key> <key-name>
例えばactive_pluginsオプションでは最初のアイテムをつかむことができます
wp option pluck active_plugins 0
Patchコマンドは、シリアル化された値を挿入、更新、削除するためにこの形式を取ります(アクション)。
wp option patch <action> <key> <key-name> <value>
最初のactive_pluginを削除すると、このようになります。
wp option patch delete active_plugins 0
Postmetaのような他のコマンドにも同じプラグとパッチが追加されました。WP-CLIを使ってアップデートのためのクールなループを作ることができます WordPressはデータをプログラム的にシリアル化します
これは私がbashスクリプトで行う方法です:
wp option get wp_smtp_options --format=json | php -r '
$var = json_decode( fgets(STDIN) );
$var->from = "[email protected]";
$var->fromname = "me";
print json_encode($var);
' | wp option set wp_smtp_options --format=json
WP-CLI command option
はWordPressの Options API を使ってその仕事をします。例えば、サブコマンド update
、正しい入力、array
を使用すると、WP-CLIでこれを実行できるはずです。ここで--format
パラメータを使用する必要があります。確実に同じになるように、json
はupdate
サブコマンドに対して一般的に機能します。 Options APIが使用されているので、サブコマンド get
を使用すると、オプションをシリアライズせずに返すことができます。これを使用すると、他のインストールや新規インストールで保存、変更、転送または設定できます。