Quiero automatizar la actualización de las opciones del complemento. Hay algunas cosas que repito mucho.
Con wp-cli sé que puedo actualizar opciones simples como esta:
php wp-cli.phar option update blog_public 1
Sin embargo, algunas opciones de complementos guardan sus opciones en una cadena serializada.
Ejemplo de valor_opción serializado en 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:"";}
¿Cómo actualizar esas opciones?
option update
línea entre comillas simples. Vea mi implementación en la línea 61 aquí: gist.github.com/squarecandy/cfdead55ca1d84496044WP-CLI es definitivamente la respuesta a esto después de la actualización a 1.4.0 que introdujo los comandos de arranque y parche para acceder a datos serializados en WordPress.
El comando pluck toma este formato para obtener valores serializados
Por ejemplo, en la opción active_plugins puede tomar el primer elemento
El comando parche toma este formato para insertar, actualizar o eliminar valores serializados (la acción)
Eliminar el primer active_plugin se vería así
También se agregaron el mismo pluck y parche para otros comandos como postmeta, ahora puede usar WP-CLI para hacer algunos bucles geniales para actualizar los datos serializados de WordPress mediante programación
fuente
Así es como lo hago en un script bash:
fuente
El comando WP-CLI
option
usa la API de opciones de WordPress para hacer su trabajo. Dado, por ejemplo, con el subcomandoupdate
, una entrada correcta, unaarray
, debería poder hacer esto con WP-CLI. Debe usar el--format
parámetro aquí, para asegurarse de obtener el mismo,json
generalmente funciona bien para elupdate
subcomando. Tenga en cuenta que el subcomandoget
debe devolverle la opción sin serializar, porque se usa la API de Opciones, que luego puede guardar, modificar y / o transferir / configurar en otras / nuevas instalaciones.fuente
wp option get wp_smtp_options > savedconfiguration.txt
wp option update wp_smtp_options < savedconfiguration.txt
primer comando se guarda como una matriz, pero el segundo no acepta una matriz. Supongo que debería serializarlo primero, ¿sabes cómo hacerlo?format
parámetro? @lalo edit: acabo de ver que lo descubriste ..format
parámetro. Me pregunto si podría ser posible sin tener que usar un archivo intermedio como escribí en mi respuesta.format
parámetro, que a veces difiere del (sub) comando al (sub) comando. Seguramente es posible, por ejemplo, escribiendo un script bash y almacenando los datos en una variable. @lalo--format
las opciones disponibles: github.com/wp-cli/wp-cli/blob/master/php/commands/…