Estoy construyendo un sitio web para miembros con WordPress Multisite. ¿Es posible restringir cuántas imágenes se generan dependiendo de la plantilla seleccionada?
He intentado las siguientes líneas de código para generar ciertas imágenes en la plantilla de la galería:
// Generate on all uploads
add_theme_support('post-thumbnails');
set_post_thumbnail_size( 1440, 350, true );
add_image_size( 'standard_box', 450, 215, true );
add_image_size( 'default_image', 691, 9999 );
// Generate on gallery template only
if ( is_page_template('page-gallery.php') ) {
add_image_size( 'gallery', 900, 9999 );
add_image_size( 'gallery_thumb', 450, 450, true );
}
Esto no ha funcionado. He investigado un poco y parece que no puedo encontrar nada sobre el tema. Si pudiera señalarme en la dirección correcta, realmente lo agradecería.
Respuestas:
Esto siempre ha sido un problema para mí: la falta de tamaño de imagen a pedido y el número posterior de archivos con los que puede terminar si tiene muchos tamaños.
Puedo ver la lógica detrás de sus esfuerzos: el problema es que
add_image_size
solo entra en juego realmente en el punto de carga. Como tal,is_page_template(..)
siempre lo seráfalse
.Un rápido google desenterró Aqua Resizer , un script diseñado para abordar este problema. En lugar de usar
add_image_size
, lo usaaq_resize
directamente en su tema, y si no existe un tamaño para la imagen, se crea y almacena en caché sobre la marcha.De hecho, he usado una técnica similar, aunque diferente, en varios sitios con muchos tamaños de imagen. Todavía guarda la sobrecarga de WordPress generando cada tamaño para cada imagen cargada: se generan sobre la marcha (y en caché) cuando y cuando se solicitan. En lo que difiere, es que simplemente puede usar todas las funciones de imagen estándar de WP y etiquetas de plantilla como lo haría normalmente.
Además, como mencionó @Waqas, el uso de Aqua Resizer dejará archivos huérfanos cuando elimine una imagen de su biblioteca de medios. Con mi técnica, todos los archivos se eliminarán, ya que se guardan en la base de datos y son reconocidos por WordPress.
Y en la práctica:
Tengo la intención de convertir esto en un complemento que convertirá automáticamente todas las
add_image_size
llamadas en cambio de tamaño a pedido, ¡así que mira este espacio!fuente
Descargo de responsabilidad:
- Esto no es realmente una respuesta.
- Se está destinado a ayudarle con su investigación adicional sobre el tema.
- Además, está reflejando una - al menos sentida - últimamente más frecuente ocurrencia de preguntas similares con respecto a problemas similares.
Información adicional sobre este tema en Wordpress Development:
Nota: La lista no está ordenada ni es completa de ninguna manera.
fuente
Si desea crear pulgares sobre la marcha, puede usar el cambio de imagen de Aqua , pero hay un inconveniente de este mini script. Los pulgares creados no se eliminarán al eliminar la imagen de la biblioteca. Pero no es gran cosa. Si es necesario, puede hacerlo a través de comandos SHH
fuente
No es una respuesta directa a su problema. Pero te ayudaré a hacer una imagen de acuerdo a tus necesidades.
Cuando usa add_image_size, no cambia el tamaño de las imágenes existentes. solo funciona para las nuevas imágenes que se cargarán después de agregar su función add_image_size.
Por lo tanto, su código no generará nuevas imágenes para la función is_page_template.
Pero puede usar una clase php simple para resolver su problema ... es una clase php famosa que se está utilizando para muchos temas premium para WordPress. Se llama Aqua-Resizer.
Puede encontrar más detalles aquí https://github.com/syamilmj/Aqua-Resizer Wiki: https://github.com/syamilmj/Aqua-Resizer/wiki
Problema que puede surgir:
Esta función funciona de esta manera ...
Entonces, cuando no puede recortar (para una imagen pequeña que su altura o anchura definieron) no muestra nada. Puede superar esta situación comprobando si obtiene un valor nulo después de pasar la URL dentro de esta función muy fácilmente como la mía aquí ...
De esta manera, puede asegurarse de que la imagen específica se generará para una plantilla de página específica y de esta manera su sitio web será mucho más limpio.
PD: esta clase de php utiliza el sistema de recorte principal de WordPress para que no haya problemas de seguridad.
fuente