Saya ingin secara otomatis memperbarui opsi plugin. Ada beberapa hal yang sering saya ulangi.
Dengan wp-cli saya tahu saya dapat memperbarui opsi sederhana seperti ini:
php wp-cli.phar option update blog_public 1
Namun, beberapa opsi plugin menyimpan opsi mereka dalam string serial.
Contoh option_value serial di 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:"";}
Bagaimana cara memperbarui opsi-opsi itu?
option update
baris dalam tanda kutip tunggal. Lihat implementasi saya pada baris 61 di sini: gist.github.com/squarecandy/cfdead55ca1d84496044WP-CLI jelas merupakan jawaban untuk ini setelah pembaruan ke 1.4.0 yang memperkenalkan perintah pluck dan patch untuk mengakses data serial di WordPress.
Perintah pemetik mengambil format ini untuk mengambil nilai serial
Misalnya dalam opsi active_plugins Anda dapat mengambil item pertama
Perintah patch mengambil format ini untuk menyisipkan, memperbarui atau menghapus nilai serial (tindakan)
Menghapus active_plugin pertama akan terlihat seperti ini
Pluck dan patch yang sama juga ditambahkan untuk perintah lain seperti postmeta, Anda sekarang dapat menggunakan WP-CLI untuk melakukan beberapa loop keren untuk memperbarui data berseri WordPress secara terprogram secara terprogram.
sumber
Inilah cara saya melakukannya dalam skrip bash:
sumber
The WP-CLI command
option
tidak digunakan WordPress' Options API untuk melakukan tugasnya. Diberikan, misalnya dengan sub perintahupdate
, input yang benar, danarray
, Anda harus dapat melakukan ini dengan WP-CLI. Anda harus menggunakan--format
parameter di sini, untuk memastikan Anda mendapatkan yang sama,json
berfungsi secara umum baik untukupdate
sub perintah . Catatan, sub-perintahget
akan mengembalikan Anda opsi yang tidak di-serialisasi, karena API Opsi digunakan, yang kemudian dapat Anda simpan, modifikasi, dan / atau transfer / set-up pada instalasi lain / baru.sumber
wp option get wp_smtp_options > savedconfiguration.txt
wp option update wp_smtp_options < savedconfiguration.txt
Perintah pertama disimpan sebagai array, tetapi perintah kedua tidak menerima array. Saya kira saya harus membuat cerita bersambung terlebih dahulu, apakah Anda tahu bagaimana melakukannya?format
parameter? @ lol edit: baru saja melihat Anda tahu ..format
parameter. Saya bertanya-tanya apakah itu bisa dimungkinkan tanpa harus menggunakan file perantara seperti yang saya tulis dalam jawaban saya.format
parameter, yang kadang-kadang berbeda dari perintah (sub-) hingga (sub-). Tentunya mungkin, misalnya dengan menulis skrip bash dan menyimpan data ke dalam variabel. @ lalo--format
opsi yang tersedia: github.com/wp-cli/wp-cli/blob/master/php/commands/…