Je crée un site Web pour les membres avec WordPress Multisite. Est-il possible de limiter le nombre d'images générées en fonction du modèle sélectionné?
J'ai essayé les lignes de code suivantes pour générer certaines images sur le modèle de galerie:
// 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 );
}
Cela n'a pas fonctionné. J'ai fait des recherches et je n'arrive pas à trouver quoi que ce soit sur le sujet. Si vous pouviez m'orienter dans la bonne direction, j'apprécierais vraiment.
Réponses:
Cela a toujours été un bug pour moi - le manque de dimensionnement d'image à la demande et le nombre de fichiers que vous pouvez vous retrouver si vous avez beaucoup de tailles!
Je peux voir la logique derrière vos efforts - le problème est
add_image_size
que cela n'entre vraiment en jeu qu'au point de téléchargement. En tant que tel, leis_page_template(..)
sera toujoursfalse
.Un rapide Google a déterré Aqua Resizer , un script conçu pour résoudre ce problème. Plutôt que d'utiliser
add_image_size
, vous utilisezaq_resize
directement dans votre thème, et si une taille pour l'image n'existe pas, elle est créée et mise en cache à la volée.En fait, j'ai utilisé une technique similaire, bien que différente, sur plusieurs sites avec de nombreuses tailles d'image. Vous économisez toujours les frais généraux de WordPress générant toutes les tailles pour chaque image téléchargée - elles sont générées à la volée (et mises en cache) au fur et à mesure qu'elles sont demandées. Là où il diffère, c'est que vous pouvez simplement utiliser toutes les fonctions d'image standard et les balises de modèle de WP comme vous le feriez normalement!
De plus, comme @Waqas l'a mentionné, l'utilisation d'Aqua Resizer laissera des fichiers orphelins lorsque vous supprimez une image de votre bibliothèque multimédia. Avec ma technique, tous les fichiers seront supprimés, car ils sont enregistrés dans la base de données et reconnus par WordPress.
Et en pratique:
J'ai l'intention de transformer cela en un plugin qui convertira automatiquement tous les
add_image_size
appels en redimensionnement à la demande, alors surveillez cet espace!la source
Avertissement:
- Ce n'est pas vraiment une réponse.
- Il est destiné à vous aider dans vos recherches supplémentaires sur le sujet.
- En outre , il est réfléchissait un - au moins ressenti - apparition plus fréquente de ces derniers temps des questions similaires au sujet des problèmes similaires.
Informations supplémentaires concernant ce sujet sur le développement Wordpress:
Remarque: La liste n'est en aucun cas ordonnée et complète.
la source
Si vous voulez créer des pouces à la volée, vous pouvez utiliser le resizer d'image Aqua , mais il y a un inconvénient à ce mini script. Les pouces créés ne seront pas supprimés lors de la suppression de l'image de la bibliothèque. Mais ce n'est pas un gros problème. Si nécessaire, vous pouvez le faire via les commandes SHH
la source
Ce n'est pas une réponse directe à votre problème. Mais je vais vous aider à faire une image selon vos besoins.
Lorsque vous utilisez add_image_size, il ne redimensionne pas les images existantes. cela ne fonctionne que pour les nouvelles images qui seront téléchargées après l'ajout de votre fonction add_image_size.
Votre code ne générera donc pas de nouvelles images pour la fonction is_page_template.
Mais vous pouvez utiliser une simple classe php pour résoudre votre problème .... c'est une classe php célèbre qui est utilisée pour beaucoup de thèmes premium là-bas pour WordPress. Il s'appelle Aqua-Resizer.
Vous pouvez trouver plus de détails ici https://github.com/syamilmj/Aqua-Resizer Wiki: https://github.com/syamilmj/Aqua-Resizer/wiki
Problème pouvant survenir:
Cette fonction fonctionne de cette façon ....
Donc quand il ne peut pas recadrer (pour une petite image que votre hauteur ou largeur a définie) il ne montre rien. Vous pouvez surmonter cette situation en vérifiant si vous obtenez une valeur nulle après avoir passé l'URL dans cette fonction très facilement comme la mienne ici ....
De cette façon, vous pouvez vous assurer que l'image spécifique sera générée pour un modèle de page spécifique et de cette façon, votre site Web sera beaucoup plus propre.
PS: cette classe php utilise le système de recadrage de base WordPress donc il n'y a pas de problèmes de sécurité.
la source