¿Qué es WP-CLI? + Cómo usarlo [La ultima guia] - ES

En esta página: [esconder]

WP-CLI es la herramienta de línea de comandos oficial para WordPress: escribes un comando corto en una terminal, y WordPress hace el trabajo sin un navegador. Una línea actualiza cada complemento. Otro exporta la base de datos o crea un usuario..

Most tutorials for it are out of date, and one gap is serious. En nuestra prueba, the standard wp core download izquierda 25 WordPress core files missing.

There’s more. The current stable release, 2.12.0, salió el 7 Mayo 2025. The nightly builds (automatic daily builds of unfinished code) already call themselves 3.0.0-alpha. One official add-on we tried now refuses to install on the stable release, and a few commands that older guides print simply fail.

So we ran everything. The commands in this guide were run with WP-CLI 2.12.0 en WordPress 7.1.3 in a local Docker test site on 12 octubre 2026. Where a section wasn’t run, it says so. The output you see is copied from that test.

Apurado? These five steps take you from nothing to a first working command on Linux or macOS:

  1. Download the tool: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  2. Check that it runs: php wp-cli.phar --info
  3. Make it executable: chmod +x wp-cli.phar
  4. Move it into your PATH: sudo mv wp-cli.phar /usr/local/bin/wp
  5. Go to your WordPress folder and run wp plugin list

Números clave de WP-CLI 2026: liberación estable 2.12.0 desde 7 Mayo 2025, 40 comandos de nivel superior, compilaciones nocturnas en 3.0.0-alfa, probado en WordPress 7.1.3

¿Qué hace WP-CLI?, y lo que no

WP-CLI loads WordPress from the terminal and calls the same functions the dashboard calls. That’s why a plugin you install with it shows up on the Complementos screen a second later. The project’s own page says it has shipped since 2011 and is maintained by volunteers.

Versión 2.12.0 tiene 40 comandos de nivel superior. We counted them with wp cli cmd-dump. The ones you’ll use most are core, plugin, theme, user, post, db, search-replace, option, config, cron y cache.

Why bother when the dashboard works? Tres razones. Commands don’t time out the way a browser request does. You can chain them into a script. And you can run them when the dashboard itself is broken, que es cuando más los necesitas.

tiene limites, y los guías más viejos los desdibujan:

  • Necesitas acceso shell. Eso significa SSH (una forma segura de iniciar sesión en su servidor y escribir comandos) o una terminal en tu panel de hosting. El FTP simple no es suficiente.
  • No tiene escáner de enlaces rotos. Ninguno de los 40 comandos comprueba enlaces. Sólo puedes buscar y reemplazar una URL que ya sabes que es incorrecta.
  • No controla los complementos de caché de página.. wp cache flush vacía el caché de objetos de WordPress, nada más. Un complemento de caché necesita su propio comando, si envía uno.
  • No hay deshacer. Un usuario eliminado o una base de datos restablecida desaparecen a menos que exportes una copia de seguridad primero.

Requisitos en 2026: Estable 2.12.0 y la venida 3.0

Aquí es donde comienza la confusión. La guía de instalación oficial ahora dice que WP-CLI necesita PHP 7.2.24 o más tarde. Pero la versión estable que descargas hoy todavía se ejecuta en PHP. 5.6. La guía describe la próxima versión..

WP-CLI 2.12.0, lanzado el 7 Mayo 2025, todavía soporta PHP 5.6, y sus notas de la versión dicen que la próxima versión necesitará PHP 7.2.24 o mas nuevo. La rama de desarrollo ya lleva ese cambio. Su README también elimina el WordPress más antiguo soportado de 3.7 a 4.9.

Requisito Estable 2.12.0 (7 Mayo 2025) Rama de desarrollo (3.0.0-alfa todas las noches)
PHP 5.6 o más tarde 7.2.24 o más tarde
WordPress 3.7 o más tarde 4.9 o más tarde
Sistema tipo UNIX (Linux, Mac OS, FreeBSD, Cygwin), soporte limitado de Windows Mismo

Ambas columnas provienen de los archivos README en el repositorio WP-CLI, sigue leyendo 12 octubre 2026. Ambos archivos README agregan versiones de WordPress anteriores a la última versión. “puede tener una funcionalidad degradada”.

¿Importa la brecha en un servidor moderno?? No para la herramienta principal. Nuestra prueba se ejecutó 2.12.0 es PHP 8.3.35, y el único error de PHP del propio WP-CLI fue un límite de memoria, cubierto a continuación. La brecha es importante para los paquetes complementarios, que cubrimos en la sección de depuración.

Una cosa más cambió. La antigua dirección wp-cli.org ahora redirige a una página en WordPress.org, Así que los enlaces de tutoriales más antiguos llegan a algún lugar nuevo.. El manual y el referencia de comando completa ambos están en WordPress.org.

Cómo instalar WP-CLI

Ejecutamos estos pasos en un PHP limpio 8.3 envase (un desechable, sistema Linux aislado). Son los mismos pasos que da la guía oficial para macOS.. Los métodos de Windows y Homebrew más abajo provienen de la documentación y no se ejecutaron..

Paso 1: Verifique PHP y descargue el archivo

WP-CLI se envía como un archivo Phar (un programa PHP completo empaquetado en un solo archivo). Comprueba que PHP funciona, luego descárgalo:

php --version
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

El archivo que obtuvimos fue 7,142,777 bytes. ¿Quieres pruebas de que es real?? Cada versión publica una suma de comprobación SHA-512 (una larga huella digital del archivo). Descárgalo y compara:

curl -sLO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha512
cat wp-cli-2.12.0.phar.sha512
sha512sum wp-cli.phar

Ambos comandos imprimieron el mismo valor en nuestra prueba., empezando con be928f6b8ca1. Si el tuyo difiere, borre el archivo y descárguelo nuevamente.

Paso 2: Pruébalo, luego instálalo

php wp-cli.phar --info

Una descarga funcional imprime un bloque como este (acortado):

PHP binary:	/usr/local/bin/php
PHP version:	8.3.35
WP-CLI root dir:	phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP_CLI phar path:	phar:///root/wp-cli.phar
WP-CLI cache dir:	/root/.wp-cli/cache
WP-CLI version:	2.12.0

Ahora haga que el archivo sea ejecutable y muévalo a su RUTA. (la lista de carpetas que su shell busca para programas). After that you can type wp from any folder:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info

Our container was already running as root, so we ran the move without sudo. On a normal server you’ll need it. Saltar el alias wp='php /usr/local/bin/wp' line some guides add. The file runs fine without it.

Paso 3: No lo ejecutes como root

Because our install container ran as root, the first real command stopped with this:

Error: YIKES! It looks like you're running this as root. You probably meant to run this as the user that your WordPress installation exists under.

If you REALLY mean to run this as root, we won't stop you, but just bear in mind that any code on this site will then have full control of your server, making it quite DANGEROUS.

If you'd like to continue as root, please run this again, adding this flag:  --allow-root

Take the hint. WP-CLI runs your plugin and theme code, so running it as root hands that code the whole server. Log in as the user that owns the site files, or use the form the message itself suggests (we didn’t run this one):

sudo -u USER -i -- wp plugin list

Paso 4: Mantenlo actualizado

wp cli version
wp cli check-update
wp cli update

En 12 octubre 2026 the second command answered Success: WP-CLI is at the latest version. para 2.12.0. If the file belongs to root, the update stops with Error: /usr/local/bin/wp is not writable by current user. We got that as a normal user. The handbook’s answer is sudo wp cli update.

Curious about what’s next? The nightly build is one flag away, and one more flag takes you back. We added --yes to both, que se salta la pregunta de confirmación:

wp cli update --nightly
wp cli update --stable

En nuestra prueba, el nightly se presentó como WP-CLI 3.0.0-alpha-3225c03. También imprimió una nueva advertencia sobre el límite de memoria de 128 M de PHP. “puede ser demasiado bajo para algunas operaciones de WP-CLI”. Volvimos a estable antes de ejecutar cualquier otra cosa.. Mantenga los nightlies fuera de los sitios en vivo.

Opcional: finalización de pestaña

La finalización con tabulación completa los nombres de los comandos cuando presionas Tab. Las guías más antiguas vinculan el guión en un master rama. El manual ahora apunta a main:

curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/main/utils/wp-completion.bash

Luego agregue una línea a ~/.bash_profile (o ~/.zshrc) y recargarlo:

source /FULL/PATH/TO/wp-completion.bash

Descargamos el script (495 bytes) pero no probó la finalización en sí, ya que nuestro shell de prueba no era interactivo.

Cerveza casera y Windows (de la documentación, no correr)

En macOS con Homebrew, el manual da una orden:

brew install wp-cli

En Windows, el manual dice guardar wp-cli.phar en una carpeta como c:\wp-cli. Luego crea un archivo llamado wp.bat al lado con estas dos líneas:

@ECHO OFF
php "c:/wp-cli/wp-cli.phar" %*

Finalmente, agregue la carpeta a su RUTA:

setx path "%path%;c:\wp-cli"

Muchos hosts instalan WP-CLI por usted. Antes de hacer algo de esto en una cuenta de hosting, tipo wp --info and see if it answers.

Primeros comandos: Ayudar, Rutas y formatos de salida

Every command follows one pattern: wp, then a command, a subcommand, and flags. Help is built in, so you rarely need a browser:

wp help
wp help plugin install

The second line prints the full manual for one subcommand, with every flag explained.

Dile a WP-CLI dónde está WordPress

Run a command outside a WordPress folder and you’ll get the error beginners see most:

Error: This does not seem to be a WordPress installation.
The used path is: /root/
Pass --path=`path/to/wordpress` or run `wp core download`.

Either cd into the folder that holds wp-config.php, or pass the path:

wp --path=/var/www/html plugin list --fields=name,status

Elija la salida que necesita

Lists print as tables by default. los --format flag switches to CSV, JSON, yamla, a plain count or a list of IDs. --fields picks columns, y --field prints one column with no header:

wp plugin list --fields=name,status,version --format=csv
wp post list --format=json --fields=ID,post_title
wp post list --format=ids
wp plugin list --format=count
wp post list --post_type=page --field=post_title

The CSV line printed this on our fresh site:

name,status,version
akismet,inactive,5.7.2
hello,inactive,1.7.2

These formats are what make scripting possible. los ids formato, por ejemplo, feeds straight into another command. You’ll see that trick in the revisions cleanup below.

Banderas que usarás en todas partes

  • --quiet hides normal messages. Errors still show.
  • --debug prints every step WP-CLI takes while it loads. It’s long, y es lo primero que se debe intentar cuando un comando se bloquea.
  • --skip-plugins y --skip-themes carga WordPress sin tus complementos o tema. Úselos cuando uno de ellos esté fallando en el sitio..
  • --url= elige un sitio en una red multisitio.
  • --yes respuestas “si” por adelantado, en comandos que piden confirmación. Trátalo con respeto.

Los scripts también dependen de códigos de salida. (el número que deja un comando: 0 para el éxito, cualquier otra cosa por el fracaso). Algunos comandos existen solo para eso.:

wp core is-installed; echo "exit code: $?"
wp plugin is-active contact-form-7; echo "exit code: $?"
wp cli has-command "db export"; echo "exit code: $?"

Los tres no imprimen nada ellos mismos.. En nuestro sitio instalado con el complemento activo, cada código de salida izquierdo 0.

Instalar y actualizar el núcleo de WordPress

Descargar WordPress: dos problemas que enfrentamos

Creamos una segunda instalación de WordPress desde una carpeta vacía para probar esta sección. El primer comando falló.:

wp core download --version=7.0.7
Downloading WordPress 7.0.7 (en_US)...
md5 hash verified: 42c6063addbbfcaff739619a0034d675
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 36864 bytes) in phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Extractor.php on line 100

La imagen oficial de Docker proporciona PHP 128 M de memoria, y descomprimir la descarga necesitaba más. Se superó el límite de una carrera.:

php -d memory_limit=512M "$(which wp)" core download

Eso terminó con Success: WordPress downloaded. ¿Pero la descarga está completa?? Comparamos los archivos con la lista oficial de WordPress.org., y la respuesta fue no:

wp core verify-checksums
Warning: File doesn't exist: wp-includes/php-ai-client/src/Providers/ApiBasedImplementation/AbstractApiBasedModelMetadataDirectory.php
Warning: File should not exist: wp-includes/php-ai-client/third-party/Http/Discovery/Exception/ClassInstantiationFailedExc
Error: WordPress installation doesn't verify against checksums.

Con WP-CLI 2.12.0 y WordPress 7.1.3, una llanura wp core download izquierda 25 faltan archivos principales en nuestra prueba. En su lugar se sentó 21 archivos con nombres acortados, como la segunda línea de arriba. Cada nombre cortado era exactamente 100 caracteres largos, contando el wordpress/ carpeta dentro del archivo. nuestro anterior 7.0.7 la descarga quedo igual 21 archivos con nombres cortos.

El paquete en sí está bien.. El propio sistema tar la herramienta enumera todos los nombres en su totalidad, entonces los nombres se cortan cuando 2.12.0 desempaqueta el .tar.gz archivo. Dos cosas nos lo evitaron.. La primera es descargar el paquete ZIP., cual el --skip-content selección de bandera:

php -d memory_limit=512M "$(which wp)" core download --skip-content

En una carpeta vacía, esa copia pasó la prueba de suma de verificación sin advertencias. La bandera deja las carpetas de temas y complementos vacías., así que instala un tema después.

El segundo es reparar una descarga que ya tienes.. Ejecutamos el mismo comando con --force sobre la copia dañada. los 25 Los archivos faltantes regresaron., los temas incluidos se quedaron, y el cheque terminó en Success. los 21 Los archivos con nombres cortos permanecieron y aún se mostraban como advertencias..

El 3.0.0-alfa nocturno no tuvo el problema. Buscó el paquete ZIP por sí solo y pasó la verificación..

Configurar e instalar

próximo, crear el archivo de configuración y la base de datos, luego instalar:

wp config create --dbname=site2 --dbuser=root --dbhost=db --prompt=dbpass
wp db create
wp core install --url=http://site2.test --title="Site Two" --admin_user=admin [email protected] --skip-email

los --prompt=dbpass La bandera hace que WP-CLI solicite la contraseña de la base de datos.. Eso lo mantiene fuera de tu historial de shell.. (En nuestra carrera principal pasamos --dbpass directamente, y probamos el formulario de solicitud en un archivo de configuración separado.)

nos quedamos fuera --admin_password, entonces WP-CLI inventó uno y lo imprimió:

Admin password: GsFz1N5DDRgH
Success: WordPress installed successfully.

Copie esa contraseña antes de borrar la pantalla.. No se vuelve a mostrar.

Busque actualizaciones y aplíquelas

wp core version
wp core check-update

nosotros habíamos instalado 7.0.7 a propósito, tener algo que actualizar. El cheque devolvió una fila.:

+---------+-------------+-------------------------------------------------------------+
| version | update_type | package_url                                                 |
+---------+-------------+-------------------------------------------------------------+
| 7.1.3   | major       | https://downloads.wordpress.org/release/wordpress-7.1.3.zip |
+---------+-------------+-------------------------------------------------------------+

hacer una copia de seguridad primero, luego actualice los archivos y la base de datos:

wp db export /tmp/before-update.sql
wp core update
wp core update-db
Updating to version 7.1.3 (en_US)...
Downloading update from https://downloads.wordpress.org/release/wordpress-7.1.3-no-content.zip...
Unpacking the update...
Success: WordPress updated successfully.

Solo quiero correcciones de seguridad? wp core update --minor permanece dentro de su sucursal actual. en nuestro 7.0.7 sitio que respondió Success: WordPress is at the latest minor release. y no cambió nada.

Verificar archivos principales, y reinstalarlos si fallan

Este par responde a una pregunta que vimos en Reddit en julio 2026: ¿Puede WP-CLI reinstalar el núcleo de WordPress?? si. Primero compare sus archivos con las sumas de verificación oficiales.:

wp core verify-checksums

Lo has visto detectar una descarga incompleta.. También detecta archivos modificados.. Agregamos una línea a wp-includes/version.php falsificar un archivo manipulado:

Warning: File doesn't verify against checksum: wp-includes/version.php
Error: WordPress installation doesn't verify against checksums.

Este comando descarga una copia limpia del núcleo y sobrescribe los archivos principales.. se va wp-content y wp-config.php solo:

wp core download --force --skip-content

El control volvió a pasar después.. En un servidor con 128M de memoria PHP, poner php -d memory_limit=512M "$(which wp)" Al frente, como lo hicimos nosotros.

Administrar complementos y temas

Lista, buscar e instalar

wp plugin list
wp plugin search "contact form" --per-page=3 --fields=name,slug,rating,active_installs
wp plugin install contact-form-7 --activate

La búsqueda importa porque WP-CLI quiere el slug (el nombre corto del complemento en su dirección de WordPress.org), no es su nombre para mostrar. La instalación luego se imprimió:

Installing Contact Form 7 (6.2.2)
Downloading installation package from https://downloads.wordpress.org/plugin/contact-form-7.6.2.2.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Activating 'contact-form-7'...
Plugin 'contact-form-7' activated.
Success: Installed 1 of 1 plugins.

Puedes instalar varios complementos en una línea., fijar una versión, o instalar desde un archivo ZIP o URL:

wp plugin install wordpress-seo --version=27.0
wp plugin activate hello akismet
wp plugin get contact-form-7

Actualiza de forma segura

Nuestro Yoast SEO anclado 27.0 nos dio una actualización real para probar. Esta es la lista después de instalarlo.:

+----------------+----------+-----------+---------+----------------+-------------+
| name           | status   | update    | version | update_version | auto_update |
+----------------+----------+-----------+---------+----------------+-------------+
| akismet        | inactive | none      | 5.7.2   |                | off         |
| contact-form-7 | active   | none      | 6.2.2   |                | off         |
| hello          | inactive | none      | 1.7.2   |                | off         |
| wordpress-seo  | inactive | available | 27.0    | 28.6           | off         |
+----------------+----------+-----------+---------+----------------+-------------+

Vista previa primero con --dry-run, luego actualice un complemento, todos ellos, o todos menos uno:

wp plugin list --update=available
wp plugin update --all --dry-run
wp plugin update wordpress-seo
wp plugin update --all
wp plugin update --all --exclude=hello-dolly
Downloading update from https://downloads.wordpress.org/plugin/wordpress-seo.28.6.zip...
Unpacking the update...
Installing the latest version...
Removing the old version of the plugin...
Plugin updated successfully.
+---------------+-------------+-------------+---------+
| name          | old_version | new_version | status  |
+---------------+-------------+-------------+---------+
| wordpress-seo | 27.0        | 28.6        | Updated |
+---------------+-------------+-------------+---------+
Success: Updated 1 of 1 plugins.

Vale la pena conocer dos comandos más. El primero activa las actualizaciones automáticas para un complemento.. El segundo compara los archivos de cada complemento con WordPress.org., una revisión rápida después de un presunto hackeo:

wp plugin auto-updates enable contact-form-7
wp plugin verify-checksums --all

los Complementos La pantalla en el tablero muestra el mismo estado.. Para la captura de pantalla volvemos a activar Yoast SEO. 27.0, entonces la actualización pendiente también es visible allí.

Captura de pantalla de la pantalla de complementos de WordPress que enumera el formulario de contacto 7 como activo con un enlace Desactivar actualizaciones automáticas, y Yoast SEO 27.0 como inactivo con un aviso de esa versión 28.6 está disponible.

La pantalla de complementos después de los comandos de instalación y actualización automática anteriores, con Yoast SEO activado 27.0. WordPress 7.1.3 con WP-CLI 2.12.0, sitio de prueba local de Docker, 12 octubre 2026.

Desactivar, Eliminar, desinstalar

wp plugin deactivate contact-form-7
wp plugin deactivate --all --exclude=contact-form-7

La segunda línea es la prueba clásica para un sitio roto.. Apague todo excepto un complemento, luego vuelva a encender el resto uno a la vez.

Advertencia: Los dos comandos siguientes eliminan archivos de complementos., y ninguno pide confirmación.

wp plugin delete hello
wp plugin uninstall akismet --deactivate

No son lo mismo. delete elimina solo los archivos. En nuestra prueba eliminó Hello Dolly mientras aún estaba activo, aunque las guías más antiguas dicen que primero se debe desactivar un complemento. uninstall también ejecuta la propia rutina de limpieza del complemento, y rechazó un complemento activo hasta que agregamos --deactivate:

Warning: The 'contact-form-7' plugin is active.
Error: No plugins uninstalled.

Los temas funcionan de la misma manera

wp theme list
wp theme install astra
wp theme activate astra
wp theme update --all
wp theme delete astra

Activando impreso Success: Switched to 'Astra' theme. WP-CLI no eliminará el tema en uso. Probarlo en nuestro tema activo regresó. Warning: Can't delete the currently active theme: twentytwentyfive. Cambie primero a otro tema.

Administrar usuarios, Roles y contraseñas

Crear y enumerar usuarios

wp user create anna [email protected] --role=editor
wp user create ben [email protected] --role=author --porcelain
wp user list

El primer comando imprime la identificación del nuevo usuario y una contraseña generada.. los --porcelain La bandera en el segundo imprime solo la identificación., que es lo que quiere un guión. La lista luego mostró:

+----+------------+--------------+-------------------+---------------------+---------------+
| ID | user_login | display_name | user_email        | user_registered     | roles         |
+----+------------+--------------+-------------------+---------------------+---------------+
| 1  | admin      | admin        | [email protected] | 2026-10-12 12:25:18 | administrator |
| 2  | anna       | anna         | [email protected]  | 2026-10-12 12:31:07 | editor        |
| 3  | ben        | ben          | [email protected]   | 2026-10-12 12:31:08 | author        |
+----+------------+--------------+-------------------+---------------------+---------------+
Captura de pantalla de la pantalla de usuarios de WordPress con tres cuentas: administrador como administrador, Anna como editora y Ben como autor..

La pantalla Usuarios enumera las dos cuentas creadas desde el terminal., con los roles que establecen los comandos. WordPress 7.1.3 con WP-CLI 2.12.0, sitio de prueba local de Docker, 12 octubre 2026.

Cambiar roles y restablecer contraseñas

wp user set-role anna author
wp user add-role anna editor
wp user update anna --display_name="Anna Petrova"
wp user reset-password anna --skip-email --show-password
wp user session destroy admin --all

Bloqueado fuera de su propio tablero? El comando de reinicio es la forma más rápida de regresar. Imprimió una nueva contraseña de 24 caracteres en nuestra prueba.. La última línea cierra la sesión de un usuario en todas partes., ¿Cuál es el movimiento correcto después de una filtración de contraseña?.

Para ver qué puede hacer un rol o una persona:

wp role list
wp cap list editor
wp user list-caps anna

En WordPress 7.1.3, wp cap list editor impreso 34 capacidades, uno por línea, empezando con moderate_comments.

Eliminar un usuario

Advertencia: eliminar un usuario también elimina las publicaciones de ese usuario a menos que se las entregue a otra persona. Ejecútelo desnudo y WP-CLI se detendrá para preguntar:

wp user delete anna
--reassign parameter not passed. All associated posts will be deleted. Proceed? [y/n]

Respuesta n, luego ejecútelo nuevamente con --reassign y el ID del usuario que debe heredar el contenido:

wp user delete anna --reassign=1

que impreso Success: Removed user 2 from http://localhost:8089., y la publicación de Anna ahora figura como autor 1. También probamos la forma peligrosa., wp user delete ben --yes. La única publicación de Ben abandonó el sitio y aterrizó en la Papelera.. No cuentes con esa red de seguridad: el mensaje promete eliminación.

Publicaciones, Páginas, Comentarios y medios

wp post create --post_type=page --post_title="About" --post_status=publish
wp post update 1 --post_title="Hello from WP-CLI"
wp post list --post_type=post --fields=ID,post_title,post_status
wp post generate --count=5

El último comando crea publicaciones ficticias., útil para probar un tema. Eliminar tiene dos niveles. Sin bandera un post va a la Papelera. Con --force se ha ido para siempre:

wp post delete 2
wp post delete 2 --force
Success: Trashed post 2.
Success: Deleted post 2.

Limpiar revisiones antiguas

WordPress guarda una copia de una publicación cada vez que la guardas. Esta conocida frase elimina todas las revisiones almacenadas., y funcionó en nuestra prueba, eliminando cuatro de ellos:

wp post list --post_type=revision --format=count
wp post delete $(wp post list --post_type=revision --format=ids) --force

Advertencia: --force salta la basura, así que primero exporte la base de datos. También hay un problema para los guiones.. Cuando no existen revisiones, el comando interno no devuelve nada, y el exterior falla con un mensaje de uso y código de salida 1. Este formulario no hace nada cuando la lista está vacía., y sale limpiamente:

wp post list --post_type=revision --format=ids | xargs -r wp post delete --force

Comentarios, media and content export

wp comment list --fields=comment_ID,comment_author,comment_approved
wp comment delete 1 --force
wp media import https://s.w.org/style/images/about/WordPress-logotype-standard.png --title="WordPress logo"
wp media regenerate --yes
wp export --dir=/tmp

La importación descargó la imagen y reportó Imported file ... as attachment ID 18. wp media regenerate reconstruye los tamaños de miniaturas, que necesitas después de cambiar a un tema con diferentes dimensiones de imagen. wp export escribe su contenido en un archivo WXR (el formato XML de la propia herramienta de exportación del panel).

Base de datos: Exportar, Importar, Query and Repair

Back up the database

wp db export
Success: Exported to 'site2-2026-10-12-61ce170.sql'.

Look at where that file went: the current folder, which is your WordPress root. A database dump there can be downloaded by anyone who guesses the name. Give a path outside the web root instead, and compress it if you like:

wp db export /tmp/backup.sql --add-drop-table
wp db export - | gzip > /tmp/backup.sql.gz
wp db export /tmp/posts-only.sql --tables=wp_posts,wp_postmeta

Our small test database came to 95.7 KB as plain SQL and 18.1 KB compressed. Remember that this covers the database only. Subidas, themes and plugins are files, and they need a file backup too.

Restore a backup

Advertencia: an import overwrites the tables it contains, and it runs without asking. In our test it started at once, with no prompt. Export the current state first if there’s any chance you’ll want it back.

wp db import /tmp/backup.sql
Success: Imported from '/tmp/backup.sql'.

Inspeccionar, check and repair

wp db size --human-readable
wp db size --tables --human-readable
wp db tables
wp db prefix
wp db check
wp db optimize
wp db repair

All three maintenance commands printed one line per table and ended with a success line. On our MariaDB tables, optimize added the note Table does not support optimize, doing recreate + analyze instead. That’s normal for InnoDB (the default storage engine in MySQL and MariaDB).

Run SQL and search the data

wp db query "SELECT ID, user_login FROM wp_users;"
wp db search "Hello world"
wp_posts:post_title
1:Hello world!

The search shows the table, the column and the row ID for each match. It’s the closest thing WP-CLI has to a broken-link finder: search for the dead URL, then fix it with search-replace. Check your table prefix with wp db prefix before you copy a query. Not every site uses wp_.

Reset or drop the database

Advertencia: the next two commands destroy data. wp db reset empties the database, so every post, página, user and setting is lost. wp db drop deletes the database itself. Neither can be undone without a backup file.

wp db reset
Are you sure you want to reset the 'site2' database? [y/n]
wp db drop
Are you sure you want to drop the 'site2' database? [y/n]

Both wait for an answer. Añadir --yes and they don’t. We ran both with --yes on the second site. After the reset, wp db tables respondió Error: The site you have requested is not installed. After the drop, every command failed with Error: Error establishing a database connection.

We got the site back each time with two commands and the backup from earlier:

wp db create
wp db import /tmp/backup.sql

Search-Replace: Change URLs Without Breaking Serialized Data

This is the command that makes WP-CLI worth installing for a single job: changing a domain, o pasar de http a https. Un simple buscar y reemplazar SQL corrompe algunas configuraciones de WordPress. Este es el por qué, y la prueba.

Always start with a dry run

wp search-replace 'http://site2.test' 'https://site2.example' --dry-run --report-changed-only
+------------+--------------+--------------+------+
| Table      | Column       | Replacements | Type |
+------------+--------------+--------------+------+
| wp_options | option_value | 2            | PHP  |
| wp_posts   | post_content | 2            | SQL  |
| wp_posts   | guid         | 3            | SQL  |
| wp_users   | user_url     | 1            | SQL  |
+------------+--------------+--------------+------+
Success: 8 replacements to be made.

--dry-run cuenta los cambios y no escribe nada. Sin --report-changed-only, la misma tirada impresa 52 filas, la mayoría de ellos ceros.

Run it for real

Advertencia: sin --dry-run, este comando reescribe la base de datos a la vez. No pidió confirmación en nuestra prueba.. Exportar primero.

wp db export /tmp/before-replace.sql
wp search-replace 'http://site2.test' 'https://site2.example' --skip-columns=guid --report-changed-only

los --skip-columns=guid bandera sale del guid columna sola. WordPress usa esa columna como identificación permanente para los lectores de feeds, por lo que el consejo habitual es no reescribirlo en un sitio activo.

The serialized data proof

WordPress almacena muchas configuraciones como datos serializados (un formato de texto que registra la longitud de cada cadena). Guardamos una opción de prueba con una URL y miramos la fila sin formato.:

a:2:{s:4:"logo";s:26:"http://site2.test/logo.png";s:4:"cols";i:3;}

Ver s:26? Esa es la longitud de la URL.. Después de buscar-reemplazar, se lee la misma fila:

a:2:{s:4:"logo";s:30:"https://site2.example/logo.png";s:4:"cols";i:3;}

WP-CLI cambió la URL y corrigió el recuento a 30. Una simple sustitución de SQL habría dejado 26 allí, and WordPress would then fail to read the setting. Ese es el “PHP” label in the Type column: those rows were unpacked, changed and packed again.

Plugin tables are skipped by default

One trap catches people during migrations. Por defecto, search-replace only touches the tables WordPress itself registers. We created a table named wp_myplugin_links with one URL in it. The default dry run ignored it. This one found it:

wp search-replace 'http://site2.test' 'https://site2.example' --all-tables-with-prefix --dry-run --report-changed-only

If a plugin keeps its own tables (many SEO, form and shop plugins do), añadir --all-tables-with-prefix. On a multisite network, --network covers every site’s tables.

Write the result to a file instead

wp search-replace 'https://site2.example' 'http://site2.test' --export=/tmp/reverted.sql --report-changed-only

Con --export, the changed data goes into an SQL file and the live database stays as it was. We confirmed that: the site’s home option was unchanged afterwards. It’s a clean way to prepare a database for another server.

Moving a Site With WP-CLI

Put the last two sections together and you have a migration. We ran each command below on our local sites, but not the trip between two real servers.

  1. On the old server, export the database: wp db export /tmp/site.sql
  2. Copy the SQL file and the whole WordPress folder to the new server. WP-CLI doesn’t copy files, so use rsync, scp or SFTP.
  3. On the new server, punto wp-config.php at the new database: wp config set DB_NAME new_name, and the same for DB_USER, DB_PASSWORD y DB_HOST.
  4. Import the data: wp db import /tmp/site.sql
  5. Dry-run the URL change, then run it: wp search-replace 'https://old.example' 'https://new.example' --all-tables-with-prefix --skip-columns=guid
  6. Clear what’s left: wp cache flush y wp rewrite flush

Then delete the SQL file from both servers. A user on Reddit who moved a subdomain this way in April 2026 said the second attempt took about five minutes. The same user then hit file permission problems. Check that the web server’s user owns the copied files.

Opciones, wp-config.php and Debugging

Read and change settings

wp option get siteurl
wp option update blogname "WP-CLI Demo Site"
wp option list --search="blog*" --fields=option_name,option_value
wp option update home 'https://site2.example'
wp option update siteurl 'https://site2.example'

The last two lines fix a site that redirects to the wrong address after a move, when you can’t reach the dashboard to change it.

Edit wp-config.php without opening it

wp config path
wp config get DB_NAME
wp config get table_prefix
wp config set WP_DEBUG true --raw
wp config set WP_DEBUG_LOG true --raw
wp config set WP_DEBUG_DISPLAY false --raw

Those three set lines switch on error logging to wp-content/debug.log and keep errors off the public page. los --raw flag matters. It writes true as a PHP value, not as the text “cierto”. WP-CLI confirmed each change like this:

Success: Updated the constant 'WP_DEBUG' in the 'wp-config.php' file with the raw value 'true'.

Turn it off again when you’re done, and remove what you added:

wp config set WP_DEBUG false --raw
wp config delete WP_DEBUG_LOG
wp config shuffle-salts

That last command replaces the secret keys in the file, which logs out every user at once. It’s useful after a break-in. nuestra guía para what each wp-config.php setting does explains the keys and the debug constants in more detail.

Find the plugin that broke the site

When the site shows a white screen, WP-CLI often crashes with it, because it loads the same broken code. Tell it to skip that code:

wp --skip-plugins --skip-themes plugin list
wp --skip-plugins plugin deactivate --all
wp theme activate twentytwentyfive

The first line worked on our test site and listed the plugins without loading any. An older guide prints wp theme switch for the last step. That command doesn’t exist: activate is the right word.

Run PHP inside WordPress

wp eval 'echo get_option("siteurl") . PHP_EOL;'
wp eval-file my-script.php
echo 'get_bloginfo("name");' | wp shell

wp eval runs one line of PHP with WordPress loaded, y wp eval-file does the same for a file. wp shell abre un mensaje PHP interactivo. Lo introdujimos una línea a través de una tubería y obtuvimos => string(8) "Site Two" atrás.

The doctor package, y un 3.0 problema

Los paquetes agregan comandos a WP-CLI. El más conocido es doctor, un conjunto de controles de salud del equipo WP-CLI. En la versión estable, la línea de instalación habitual ahora falla:

wp package install wp-cli/doctor-command
- wp-cli/doctor-command dev-main requires wp-cli/wp-cli ^3.0 -> found wp-cli/wp-cli[2.12.0] but it does not match the constraint.
Error: Package installation failed (Composer return code 2).

El paquete wp-cli/doctor-command pasó a la versión 3.0.0 en 4 agosto 2026 y ahora requiere WP-CLI 3.0, que aún no tiene una versión estable. Fijar una versión anterior funcionó para nosotros:

wp package install wp-cli/doctor-command:v2.1.3
wp doctor check --all

eso corrió 16 controles en nuestro segundo sitio. Pasó 13 y planteó tres advertencias: un complemento y dos temas tenían actualizaciones esperando, y mas que 40 El porcentaje de complementos estaban inactivos.. Entre los pases se encontraban sumas de verificación básicas., opciones cargadas automáticamente en 36.5 KB contra un 900 límite de KB, y no hay archivos PHP en la carpeta de cargas.

Los propios archivos del paquete muestran un objetivo en movimiento.. Versión 2.3.1 pide WP-CLI 2.12, pero 2.3.2 pide 2.13, que tampoco fue lanzado como estable. Solo probamos 2.1.3. Quitar un paquete con wp package uninstall wp-cli/doctor-command.

Cache, Transitorios, Cron and Maintenance Mode

Tres cosas llamadas “cache”

wp cache flush
wp cache type
wp transient delete --expired
wp transient delete --all
wp cli cache clear

Estos se mezclan, Así que esto es lo que hizo cada uno en nuestra prueba.:

  • wp cache flush vació el caché de objetos de WordPress (resultados almacenados de consultas a la base de datos) e impreso Success: The cache was flushed.
  • wp cache type impreso Default, lo que significa que no hay ningún caché de objetos de Redis o Memcached conectado.
  • wp transient delete --all eliminado tres transitorios (Los complementos de valores temporales se almacenan en la base de datos.).
  • wp cli cache clear vació la propia carpeta de descarga de WP-CLI. No tiene nada que ver con la velocidad de su sitio..

La versión antigua de esta página impresa. wp cache add key groupvalue 200 como una manera de “Habilitar el almacenamiento en caché”. Lo ejecutamos. Almacenó un valor llamado “llave” en un grupo llamado “200”, y no habilitó nada.

Después de cambiar enlaces permanentes o mover un sitio, reconstruir las reglas de URL también:

wp rewrite structure '/%postname%/'
wp rewrite flush

See and run scheduled tasks

WordPress tiene su propio programador, WP-Cron, que sólo se ejecuta cuando alguien visita el sitio. WP-CLI muestra lo que está en cola y lo ejecuta bajo demanda:

wp cron event list --fields=hook,next_run_relative,recurrence
wp cron event run --due-now
wp cron event run wp_version_check
wp cron schedule list

En nuestro nuevo sitio la lista tuvo nueve eventos., cinco de ellos debido. El segundo comando ejecutó esos cinco:

Executed the cron event 'recovery_mode_clean_expired_keys' in 0.003s.
Executed the cron event 'wp_privacy_delete_old_export_files' in 0.002s.
Executed the cron event 'wp_privacy_personal_data_cleanup_requests' in 0.002s.
Executed the cron event 'wp_delete_temp_updater_backups' in 0.001s.
Executed the cron event 'do_pings' in 0.558s.
Success: Executed a total of 5 cron events.

Modo de mantenimiento

wp maintenance-mode activate
wp maintenance-mode status
wp maintenance-mode deactivate

La activación crea un archivo llamado .maintenance en la raíz de WordPress (33 bytes en nuestra prueba). Los visitantes ven el “brevemente no disponible” aviso hasta que lo desactives. El mismo comando rescata un sitio cuando una actualización fallida deja ese archivo atrás. nuestra guía para un sitio atascado en modo de mantenimiento cubre las otras salidas.

Scripts, Custom Commands and wp-cli.yml

A setup script

Todo lo que escribas puede ir en un archivo.. Este script configura un sitio nuevo de la misma manera cada vez. Lo guardamos como setup.sh y lo ejecuté con sh setup.sh:

#!/bin/sh
# Stop at the first failed command.
set -e

wp plugin install contact-form-7 --activate
wp theme install twentytwentyfour --activate
wp option update blogdescription "Built by a script"
wp rewrite structure '/%postname%/'
wp post create --post_type=page --post_title="Contact" --post_status=publish
echo "Setup finished."

Funcionó limpio y terminó con Setup finished. Mantener el set -e línea. Sin ello, un script continúa después de una falla y puede actualizar un sitio cuya copia de seguridad acaba de fallar.

No confíes ciegamente en los códigos de salida, aunque. wp plugin install con una babosa que no existe código de salida izquierdo 1 en nuestra prueba. Pero wp plugin update con una babosa equivocada imprimió solo una advertencia y se fue 0, entonces un guión pasaría por alto.

Schedule it with cron (de la documentación, no correr)

La página del proyecto WordPress.org sugiere ejecutar WP-CLI desde cron para trabajos como podar transitorios en 3 a.m. A crontab line for a nightly database backup at that hour looks like this:

0 3 * * * cd /var/www/html && /usr/local/bin/wp db export /home/user/backups/nightly.sql --quiet

We didn’t run a cron daemon in the test, so treat that line as a pattern. Use full paths, because cron starts with a very short PATH. The five fields at the front are minute, hora, day of month, month and weekday.

Write your own command

A custom command is a few lines of PHP. We saved this as hello-command.php:

<?php
/**
 * Prints a short status line for the current site.
 */
WP_CLI::add_command( 'site-status', function ( $args, $assoc_args ) {
    $posts = wp_count_posts()->publish;
    $users = count_users()['total_users'];
    WP_CLI::log( 'Site: ' . get_bloginfo( 'name' ) );
    WP_CLI::success( "$posts published posts, $users users." );
} );

Load it for one run with --require:

wp --require=hello-command.php site-status
Site: Site Two
Success: 1 published posts, 1 users.

Without the flag, wp site-status failed as “not a registered wp command”. To make it permanent, we copied the file into wp-content/mu-plugins/ (must-use plugins, which WordPress always loads). The command then worked on its own.

Save your defaults in wp-cli.yml

A file named wp-cli.yml in your project folder stores flags so you don’t retype them. This is the file we tested:

path: /tmp/site2
disabled_commands:
  - db drop
  - db reset
@main:
  path: /var/www/html
@two:
  path: /tmp/site2
@all:
  - @main
  - @two

los path line let us run commands from a folder with no WordPress in it. los disabled_commands list is a cheap safety catch for a live site. With it in place, la orden destructiva fue rechazada:

Error: The 'db drop' command has been disabled from the config file.

Las líneas que comienzan con @ son alias, nombres cortos para sitios. Un grupo de alias ejecuta un comando en varios sitios:

wp @main option get home
wp @all core version
wp cli alias list
@main
7.1.3
@two
7.1.3

Según el manual, WP-CLI lee la configuración en este orden: banderas de línea de comando, entonces wp-cli.local.yml, entonces wp-cli.yml, entonces ~/.wp-cli/config.yml.

Remote Sites Over SSH (From the Documentation, Not Run)

Nuestra prueba no tenía servidor remoto., entonces no se ejecutó nada en esta sección. Proviene de la guía del manual WP-CLI para ejecutar comandos de forma remota, sigue leyendo 12 octubre 2026.

El mundial --ssh flag envía un comando a otra máquina. Su formato es --ssh=[<scheme>:][<user>@]<host>[:<port>][<path>]:

wp [email protected]~/webapps/production plugin list
wp --ssh=example.com:2222 core version

El manual es claro en un requisito.: WP-CLI también debe estar instalado en el servidor remoto y ser accesible como wp. Su computadora solo pasa el comando a través de ssh.

Escribir esa bandera envejece rápidamente, para que los alias puedan contenerlo. Este ejemplo es del manual.:

@prod:
  ssh: [email protected]~/webapps/production
@dev:
  ssh: [email protected]/srv/www/example.dev
@both:
  - @prod
  - @dev

Con eso guardado en wp-cli.yml o ~/.wp-cli/config.yml, el uso documentado es:

wp @prod rewrite flush
wp @both core check-update

Hay un inconveniente conocido. El manual advierte que las conexiones SSH no se cargan ~/.bashrc, por lo que es posible que el servidor remoto no encuentre wp aunque esté instalado. Sus soluciones son colocar el archivo en una carpeta que ya se encuentra en la RUTA remota, o para configurar la RUTA para sesiones SSH.

La misma bandera también acepta docker:, docker-compose: y vagrant: como esquemas, para contenedores locales y máquinas virtuales.

Multisite in Brief

Multisitio ejecuta varios sitios desde una instalación de WordPress. Convertimos nuestro segundo sitio de prueba y agregamos un subsitio:

wp core multisite-convert
wp site create --slug=shop --title="Shop"
wp site list --fields=blog_id,url
+---------+-------------------------+
| blog_id | url                     |
+---------+-------------------------+
| 1       | http://site2.test/      |
| 2       | http://site2.test/shop/ |
+---------+-------------------------+

El comando convert agrega las tablas y constantes de la red., luego le recuerda que debe configurar las reglas de reescritura usted mismo. Desde aquí, --url decide con qué sitio habla un comando. Para ejecutar algo en cada sitio, recorrer la lista:

wp --url=site2.test/shop option get blogname
wp site list --field=url | xargs -n1 -I % wp --url=% option get home

Advertencia: convirtiendo cambios wp-config.php y la base de datos. los core comando en 2.12.0 no tiene ningún subcomando para volver a convertir. Exportar primero.

Commands From Older Tutorials That Fail Today

Ejecutamos los comandos impresos en el 2024 versión de esta página. La mayoría todavía trabaja. Estos no hacen lo que dice la pagina, y la fila de descarga cerca del final también incluye guías más nuevas.:

Comando tal como está impreso ¿Qué pasó en nuestra prueba? Usa esto
wp theme switch my_theme Error: 'cambiar’ no es un subcomando registrado de 'tema’ wp theme activate my_theme
wp plugin update yoastseo --version=dev Advertencia: El 'yoastseo’ No se pudo encontrar el complemento (la babosa es wordpress-seo) wp plugin update wordpress-seo
wp cache add key groupvalue 200 Almacenó un valor llamado “llave” en un grupo llamado “200”. El almacenamiento en caché no estaba habilitado. Un complemento de caché de objetos persistentes, entonces wp cache type para confirmar
wp cli cache clear (se muestra como borrando el caché del sitio) Se vació solo el caché de descarga propio de WP-CLI wp cache flush
wp user delete john (“solicita la identificación”) Hizo una pregunta de sí o no, sin posibilidad de ingresar una identificación wp user delete john --reassign=1
“Un complemento debe desactivarse antes de eliminarlo” wp plugin delete eliminó un complemento activo sin quejarse wp plugin uninstall si quieres el control de seguridad
wp core download (todavía en la mayoría de las guías) Éxito reportado, pero 25 Faltaban archivos principales y la prueba de suma de comprobación falló wp core download --skip-content, o reparar con --force --skip-content
Guión de finalización del master rama El enlace aún está descargado., pero el manual ahora usa main los main URL en la sección de instalación

La página antigua también incluía PHP. 5.4 como mínimo. los 2.12.0 LÉAME dice 5.6, y el próximo lanzamiento dirá 7.2.24.

Errors You’re Likely to Hit

Estos son los errores que encontramos durante la prueba., con la solución que funcionó.

  • Carpeta incorrecta: This does not seem to be a WordPress installation. Cambie a la carpeta con wp-config.php, o agregar --path=.
  • Ejecutando como root: YIKES! It looks like you're running this as root. Cambiar al usuario propio del sitio. Usar --allow-root sólo dentro de contenedores desechables.
  • Sin memoria: Allowed memory size of 134217728 bytes exhausted. El límite de la línea de comandos de PHP es 128M. Ejecute el comando one con php -d memory_limit=512M "$(which wp)" Al frente.
  • Sin base de datos: Error establishing a database connection. Lo vimos después de eliminar la base de datos.. En un sitio en vivo generalmente significa detalles incorrectos en wp-config.php, o un servidor de base de datos que no funciona. Compruébalos con wp config get DB_HOST y wp config get DB_NAME.
  • Sin archivo de configuración: 'wp-config.php' not found. Los archivos de WordPress existen pero no están configurados. Correr wp config create.
  • Necesidades del paquete 3.0: requires wp-cli/wp-cli ^3.0. Un paquete quiere lo inédito 3.0. Anclar una versión anterior del paquete, como se muestra en la sección del médico.
  • Descarga incompleta: File doesn't exist advertencias de wp core verify-checksums después wp core download. Correr wp core download --force --skip-content.
  • babosa equivocada: The 'x' plugin could not be found. Encuentra el adecuado con wp plugin list o wp plugin search.

WP-CLI Cheat Sheet

Todos los comandos de esta tabla se ejecutaron en nuestra prueba.. Filas marcadas “destruye datos” need a database export first.

Task Command Riesgo
Show versions and paths wp --info Ninguno
Update WP-CLI wp cli update Ninguno
Check for a WordPress update wp core check-update Ninguno
Actualizar WordPress wp core update entonces wp core update-db Changes files
Verificar archivos principales wp core verify-checksums Ninguno
Descargar WordPress (ZIP package) wp core download --skip-content Ninguno
Reinstall core files wp core download --force --skip-content Overwrites core files
Install and activate a plugin wp plugin install SLUG --activate Changes files
Preview plugin updates wp plugin update --all --dry-run Ninguno
Switch off all plugins wp plugin deactivate --all Site features stop
Change the theme wp theme activate SLUG Changes the site’s look
Create a user wp user create NAME EMAIL --role=editor Ninguno
Reset a password wp user reset-password NAME --skip-email --show-password Old password stops working
Eliminar un usuario, keep the posts wp user delete NAME --reassign=ID Destroys data
Back up the database wp db export /path/outside/webroot/backup.sql Ninguno
Restore the database wp db import backup.sql Destroys data
Preview a URL change wp search-replace OLD NEW --dry-run Ninguno
Change URLs wp search-replace OLD NEW --skip-columns=guid Destroys data
Empty the database wp db reset Destroys data
Turn on debug logging wp config set WP_DEBUG true --raw Ninguno
Flush the object cache wp cache flush Ninguno
Run due cron events wp cron event run --due-now Ninguno
Leave maintenance mode wp maintenance-mode deactivate Ninguno

Preguntas frecuentes

How do I know if WP-CLI is already installed on my hosting?

Log in over SSH and type wp --info. If it’s installed, you’ll see a block that ends with the WP-CLI version. si consigues “comando no encontrado”, install it yourself with the five steps at the top. You don’t need root for that: keep the file in your home folder and run it as php wp-cli.phar.

Can I use WP-CLI without SSH access?

No. WP-CLI runs on the server, entonces necesitas una forma de escribir comandos allí. Eso es SSH o una terminal dentro de tu panel de hosting.. Si su plan no ofrece ninguno, aún puedes practicar en una instalación local de WordPress en tu propia computadora.

Can WP-CLI break my site?

si, y rápidamente. En nuestra prueba, wp db import y wp search-replace cambió la base de datos sin confirmación. wp db reset y wp user delete preguntó primero, a menos que --yes fue añadido. Correr wp db export antes de cualquier comando que escriba en la base de datos, y usar --dry-run dondequiera que un comando lo ofrezca.

Should I install the nightly build to get WP-CLI 3.0 ahora?

No en un sitio en vivo. La noche que instalamos en 12 octubre 2026 se llamó a sí mismo 3.0.0-alfa, lo que significa inacabado. Mantente estable 2.12.0 y anclar versiones anteriores de paquetes donde un paquete solicita 3.0. Pruebe Nightly en una copia local si tiene curiosidad.: wp cli update --stable te trae de vuelta.

Where to Start

No intentes aprender 40 comandos. Aprende cuatro, en este orden. Empezar con wp db export, porque hace que cada error posterior sea reversible. Luego viene wp plugin update --all --dry-run, luego la misma línea sin la última bandera. El cuarto es wp search-replace con --dry-run, por el día que mueves el sitio.

Luego agrega un wp-cli.yml con db drop y db reset discapacitado en cualquier cosa que gane dinero. son cuatro lineas, y bloqueó el comando cuando lo intentamos.

Guías relacionadas: una exportación de base de datos no es una copia de seguridad completa, así que lee cómo hacer una copia de seguridad de un sitio de WordPress para archivos y copias externas. Una vez WP-CLI 3.0 barcos como estables, espere que el requisito de PHP y el problema del paquete anterior cambien.

Investigado y escrito por:
CómoHosting Editores
HowToHosting.guide proporciona experiencia y conocimientos sobre el proceso de creación de blogs y sitios web., encontrar el proveedor de alojamiento adecuado, y todo lo que viene en el medio. Leer más...

Dejar un comentario

su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *

Este sitio web utiliza cookies para mejorar la experiencia del usuario. Al usar nuestro sitio web, usted acepta todas las cookies de acuerdo con nuestro Política de privacidad.
Estoy de acuerdo
En HowToHosting.Guía, Ofrecemos revisiones transparentes de alojamiento web., asegurar la independencia de influencias externas. Nuestras evaluaciones son imparciales ya que aplicamos estándares estrictos y consistentes a todas las revisiones..
Si bien podemos ganar comisiones de afiliados de algunas de las empresas destacadas, Estas comisiones no comprometen la integridad de nuestras reseñas ni influyen en nuestras clasificaciones..
Los ingresos del afiliado contribuyen a cubrir la adquisición de la cuenta., gastos de prueba, mantenimiento, y desarrollo de nuestro sitio web y sistemas internos.
Confíe en howtohosting.guide para obtener información confiable sobre alojamiento y sinceridad..