Je voudrais savoir s'il existe un moyen simple (code personnalisé ou plugin) de créer des tailles de vignettes uniquement pour les images que j'ai l'intention d'utiliser comme images en vedette (index.php, archive.php, etc.), mais pas pour les images utilisé dans les messages (single.php). Mon objectif principal est de réduire l'utilisation de l'espace serveur en ne créant pas de vignettes que mon thème n'utilisera jamais.
Mes miniatures n'auraient en fait que deux tailles, 720px de large et 328px de large, et les images en vedette de 720px de large (page d'accueil uniquement) auraient également une large de 328px (pour archive.php et sidebar.php)
Actuellement, la seule façon programmatique que je connaisse est de générer des miniatures pour chaque téléchargement d'images , ce qui n'est pas souhaitable, car la plupart de mes téléchargements seront des images publiées et je devrais supprimer beaucoup d'images du serveur manuellement.
Je préfère le code personnalisé aux plugins, mais un plugin serait acceptable. Je sais qu'il existe des plugins de redimensionnement d'image, mais ils n'ont pas été mis à jour depuis longtemps (TimThumb, Dynamic Image Resizer ).
J'ai également trouvé une question similaire ici sur Wordpress SE, mais la réponse acceptée ne résout pas vraiment mon problème.
EDIT: J'ai besoin de supprimer ou d'empêcher les vignettes pour les images à l'intérieur du message, pas pour les images en vedette, c'est-à-dire:
(1) Image en vedette : les vignettes supplémentaires générées automatiquement par WP sont OK.
(2) Images utilisées à l'intérieur des messages : téléchargez l'image d'origine et ne générez pas de tailles supplémentaires. Je recadrerai, redimensionnerai et optimiserai l'image avant de la télécharger et une taille unique conviendra à mes besoins.
la source
_thumbnail_id
-, qui devrait être suffisante en fait,save_post
et des crochets similaires pourraient être un moyen d'aller. Mais n'oubliez pas que ces images dans votre article peuvent être utilisées dans d'autres articles comme vignette, vous voudrez peut-être avoir un mécanisme pour en tenir compte.add_filter('intermediate_image_sizes_advanced', '__return_false')
puis redimensionnez la miniature à la volée avec GlideRéponses:
Cette fonction générera une image en enregistrant temporairement une taille d'image, en générant l'image (si nécessaire) et en supprimant la taille afin que de nouvelles images ne soient pas créées dans cette taille.
C'est "paresseux" car les images ne sont générées que lorsqu'elles sont nécessaires.
Dans votre cas d'utilisation, vous appelleriez cela
lazy_image_size
avec l'ID de miniature de publication pour obtenir une image de la taille souhaitée. Une image serait générée lors du premier appel. Les appels suivants récupéreraient l'image existante.Gist: https://gist.github.com/mtinsley/be503d90724be73cdda4
la source
Vous pouvez voir ce lien . il y a un exemple comme
la source
1. Allez dans Tableau de bord> Paramètres> Média
2. Décochez la vignette de recadrage aux dimensions exactes (normalement les vignettes sont proportionnelles)
3.Entrez 0 pour toutes les entrées (0 pour toutes les tailles)
4.Ajoutez-les à vos fonctions.php
5. Assurez-vous qu'il n'y a pas de ligne de code dans vos fonctions.php commencez par
add_imge_size
Remarque:: je suppose que vous utilisez une taille de 400x400 pour votre miniature Maintenant, lorsque vous téléchargez une photo, elle ne créera que 2 versions au lieu d'au moins 4 versions photo comme précédemment.la source
Salut - j'ai eu un problème similaire. Woocommerce utilise des images de catalogue pour les images de catalogue et de produits associés. Ce n'est pas idéal, car vous perdez la qualité ou la vitesse de l'image. J'ai donc essayé d'ajouter une quatrième catégorie d'images pour mes produits connexes. Howdy McGee a résolu le problème. Veuillez consulter la réponse de Howdy McGees:
Il a parfaitement fonctionné pour mes besoins. Pour votre problème, la même logique pourrait être appliquée. J'espère que cela t'aides. salutations - theo
J'ai trouvé une solution qui fonctionne. 1. étape: attribuez une nouvelle taille de vignette dans votre functions.php. Vérifiez la référence: wp codex !
Remarque: «votre pouce», vous utiliserez ce nom de variable plus tard
étape: Ajoutez ensuite le code suivant où vous voulez afficher vos produits phares:
Référence et infos: pas assez de réputation pour un troisième lien, désolé (www.haloseeker.com/display-woocommerce-featured-products-without-a-shortcode/) Je l'ai placé dans l'index.php (ma page d'accueil) de wootheme mystile . N'oubliez pas d'utiliser «votre pouce» en ligne:
étape: régénérez les vignettes, utilisez le plugin https://wordpress.org/plugins/regenerate-thumbnails/
rafraîchir le navigateur et inspecter le dom et comparer les valeurs
Selon votre thème, vous pouvez changer le balisage et les noms de classe. J'ai testé la méthode ci-dessus et cela fonctionne bien. La seule chose que je n'ai pas pu faire jusqu'à présent est d'ajouter le bouton ajouter au panier, car je ne sais pas comment écrire une variable dans le shortcode du bouton ajouter au panier. Voici le code:
J'espère que ça aide. Il existe certainement une manière plus élégante de procéder. Par exemple avec une fonction dans le functions.php
en ce qui concerne theo
la source
pour empêcher WordPress de créer des tailles supplémentaires pour certaines images uniquement, vous devez avoir un moyen d'indiquer qu'une image que vous allez télécharger ne sera utilisée que dans un but particulier. cela doit se produire AVANT de le télécharger.
comme il n'y a pas d'interface (prête à l'emploi) pour indiquer de telles options lors d'une action de téléchargement, vous ne pouvez pas empêcher la génération d'image supplémentaire - à moins qu'un plug-in n'ait ajouté cette fonctionnalité.
mais pourquoi diable ne voudriez-vous pas des tailles d'image supplémentaires? vous ne savez jamais quand vous pouvez rencontrer une situation où vous souhaitez utiliser une taille différente de n'importe quelle image. êtes-vous préoccupé par l'espace de stockage?
ne pouvez-vous pas utiliser vos propres spécifications de taille comme celle-ci?
the_post_thumbnail( array(100, 100) );
la plupart des réponses et des commentaires que j'ai lus ici expliquent comment personnaliser l'environnement WordPress pour les tailles d'image, mais aucun ne mentionne le faire sous condition. en outre, aucun d'entre eux ne traite du fait que vous devez être en mesure d'indiquer l'utilisation d'une image avant de la télécharger.
si vous essayez de compenser une image trop petite ou une image trop grande dans un message, vous pouvez utiliser quelques éléments.
CSS: vous pouvez ajouter des entrées à votre feuille de style, par exemple
.post-entry img { max-width:200px; max-height:300px; }
, c'est plus universel et efficace que de compter sur la taille de l'image elle-même - C'EST BEAUCOUP de temps Photoshop.Modèle: vous pouvez modifier le fichier de modèle où la sortie HTML des publications est générée et spécifier une taille d'image comme celle-ci:
voir cette documentation sur WordPress: https://codex.wordpress.org/Function_Reference/the_post_thumbnail
la source