¿Cómo evito que se cargue un complemento al hacer WP-CLI?
12
Actualmente uso este código en el archivo principal de complementos. Pero ese complemento no es mío, por lo que preferiría poder actualizarlo normalmente sin agregar cada vez este código.
if(defined('WP_CLI')&& WP_CLI ){exit;}
Necesito hacer esto porque este complemento produce errores y detiene que wp-cli se ejecute correctamente, por lo que no puedo deshabilitar el complemento con wp-cli, realizar mis tareas y volver a habilitarlo.
¿Hay alguna manera de hacer algo como if x then do not load plugin file xdesde un plugin mu?
Simplemente reemplácelo gravityforms/gravityforms.phpcon el directorio y el nombre de archivo del complemento que desea deshabilitar.
El problema aquí es que estamos tratando de afectar a la carga de plugins, por lo que no podemos hacerlo desde dentro de un plug-in, ya que es demasiado tarde. En el tema también sería demasiado tarde.
Afortunadamente, WordPress tiene "Debe usar complementos", estos son complementos que puede agregar que se cargan antes y por separado a los complementos regulares, y no aparecen en la lista de complementos regulares.
Todo lo que necesita hacer para agregar este código a un complemento que debe usar es crear un wp-content/mu-pluginsdirectorio (si aún no existe) y crear un archivo PHP (se puede llamar de cualquier forma) con ese código. No necesita un encabezado de complemento ni nada más.
Ahora ese código se cargará antes que todos los demás complementos cuando se cargue WordPress. Dado que nuestro filtro está en su lugar, cuando WordPress obtenga la lista de complementos activos para cargar el complemento que desea deshabilitar, se filtrará de esa lista si WP-CLI está activo.
Tenía la misma idea pero esto no funciona. Al menos no en mi entorno local. ¿Tal vez get_option()regresa temprano cuando el valor se guarda en transitorios / similares y se omite este filtro? (No funciona para la mayoría de los casos, solo en la pantalla del complemento de administrador que realmente se ejecutó)
kero
Hm. Mirando la fuente y hasta donde puedo decir, la única razón por la que el option_filtro no se aplicaría es si no tiene un valor y está devolviendo el valor predeterminado.
Jacob Peattie
Ese fue realmente el caso (no hay complementos activos). No debería mantener mis entornos de prueba demasiado limpios ..
kero
1
Acepté esto porque en mi caso es lo que necesitaba. Aunque, en general, la --skip-plugin=xopción de wp-cli puede ser una mejor manera de hacerlo.
NextGenThemes
15
Puede usar la skip-pluginsopción en WP-CLI para no cargar complementos individuales cuando use WP-CLI.
Simplemente renombrar el nombre del directorio del complemento lo deshabilitará. A veces lo hago para deshabilitar temporalmente un complemento [linux]:
get_option()
regresa temprano cuando el valor se guarda en transitorios / similares y se omite este filtro? (No funciona para la mayoría de los casos, solo en la pantalla del complemento de administrador que realmente se ejecutó)option_
filtro no se aplicaría es si no tiene un valor y está devolviendo el valor predeterminado.--skip-plugin=x
opción de wp-cli puede ser una mejor manera de hacerlo.Puede usar la
skip-plugins
opción en WP-CLI para no cargar complementos individuales cuando use WP-CLI.Puede usarlo en un comando como este:
O puede agregar esto a su
wp-cli.yml
archivo:fuente
Simplemente renombrar el nombre del directorio del complemento lo deshabilitará. A veces lo hago para deshabilitar temporalmente un complemento [linux]:
fuente