Estoy construyendo un sitio para un fotógrafo que carga imágenes que normalmente son grandes para las cámaras digitales de hoy. Las imágenes requieren bastante memoria, especialmente las operaciones de imagen como la creación de miniaturas.
Así que quería aumentar el límite de memoria en el administrador por encima de 256 MB, ¿cómo se puede hacer esto? Permití que CGI y PHP usaran hasta 1 Gigabyte, pero WordPress siempre disminuye la memoria a 256 MB. ¿Alguna idea de cómo arreglar eso en el lado del cliente que necesita poder actualizarse automáticamente?
ACTUALIZACIÓN: Desde Wordpress 3.2 en curso, el límite máximo de memoria en Wordpress se podrá volver a configurar .
customization
admin
memory
hakre
fuente
fuente
Respuestas:
Teóricamente, edite su config.php y agregue esta línea antes de la inclusión de wp-settings.php.
debería aumentar el límite de memoria para WordPress a 256 MB o cualquier valor que establezca. Y esto funcionará en todo el sitio. Sin embargo, como señaló sorich87 , hay pocas funciones que alterarán esta configuración con un límite de 256 MB codificado.
Hackear o no hackear
Una pequeña preocupación sobre esto,
WP_MEMORY_LIMIT
es una de las configuraciones de WP más extrañas que he encontrado. si marca/wp-includes/default-constants.php
, encontrará esta configuración:Nunca me doy cuenta de que WP configurará su uso de memoria predeterminado tan bajo, hasta que encuentre esto en WP codex:
Esa explicación fue un alivio. Sin embargo, nunca se menciona el uso de la
@ini_set('memory_limit', '256M');
función de ejecución de WP codificada cada vez que se necesita más memoria . De hecho, no encuentro ninguna explicación sobre este comportamiento vago del WP codex. Dado que la mayoría de las funciones no relacionadas con el usuario no están documentadas o no se explican claramente en el códice.Si bien esta configuración funciona bien en la mayoría de los casos, hará que esas funciones sean inútiles en el servidor con una configuración de memoria máxima más baja o, en su caso, un mayor uso de memoria.
Hasta que los chicos de WP arreglen esto, creo que su única solución es modificar el núcleo. Puede encontrar esta publicación escrita por hakre interesante para leer. También presentó una recomendación de parche en Trac. El enlace anterior al archivo de parche puede ayudarlo a encontrar la lista de funciones que utilizan esta configuración.
editar:
Esta es la respuesta más estúpida que he dado porque le doy un enlace a su propia publicación (solo tenga en cuenta que el nombre de OP fue hakre después de 2 días): D
editar 2:
como se menciona en el comentario, esto se ha solucionado con la versión 3.2
fuente
Hay
@ini_set('memory_limit', '256M');
antes de que las imágenes sean cargadas en la memoria por las funciones de GD.imagecreatefromstring()
(línea 253, wp-includes / media.php) se usawp_load_image()
medianteimage_resize
(la función en la que se realiza el procesamiento de imágenes para la creación de miniaturas). El límite de memoria está en la línea 252, por lo que, hasta donde puedo ver, no hay forma de modificarlo sin matar a un gatito *> :).También hay funciones GD en
load_image_to_edit()
(línea 200, wp-admin / includes / image-edit.php). Este es usado por el editor de imágenes (nunca lo usé, ya que conozco WordPress, ni siquiera sabía si debía encontrarlo :)). Si su cliente lo usa, es posible que también desee establecer el límite de memoria allí. Ahí está el filtroload_image_to_edit_path
.Espero que mi respuesta sea útil.
* núcleo de piratería
fuente
WP_MEMORY_LIMIT
unadmin_memory_limit
filtro constante e incluso un filtro, pero ninguno de estos casos se consulta.Swill: tuve los mismos problemas. Maldito wordpress con algunas de las "características" Un enfoque bastante más sofisticado es cambiar todos los @ini_set 's para configurarlo desde WP_MEMORY_LIMIT - problema resuelto
Además, cambiar los valores de php en tiempo de ejecución no es tan inteligente, no estoy seguro de por qué se implementa :(
fuente
Por su descripción, creo que este código
admin.php
es el problema:Es un tanto extraño que trate el uso de memoria de administrador por separado, pero al menos es filtrable.
fuente
Solo quería agradecer a Bangbambang. Esta es la primera publicación que encontré que fue capaz de darme una idea de por qué la entrada en wp-config.php
define('WP_MEMORY_LIMIT', '512M');
no se estaba utilizando realmente. Pasé horas tratando de resolver esto ...Mi importación estaba fallando con el problema agotado de 256M independientemente de cómo configuré el límite de memoria.
Estos son los lugares donde el límite de memoria está codificado a 256M (en la versión 3.0.5 de todos modos).
fuente
WP_MAX_MEMORY_LIMIT
.fuente