{"id":1232,"date":"2011-07-18T08:47:21","date_gmt":"2011-07-18T07:47:21","guid":{"rendered":"https:\/\/www.creativejuiz.fr\/blog\/?p=1232"},"modified":"2016-01-06T11:41:15","modified_gmt":"2016-01-06T10:41:15","slug":"gestion-des-miniatures-sous-wordpress-ajouter-facilement-de-nouvelles-dimensions","status":"publish","type":"post","link":"https:\/\/www.creativejuiz.fr\/blog\/tutoriels\/gestion-des-miniatures-sous-wordpress-ajouter-facilement-de-nouvelles-dimensions","title":{"rendered":"Gestion des miniatures sous WordPress : ajouter facilement de nouvelles dimensions"},"content":{"rendered":"<p>Lors d&rsquo;un d\u00e9veloppement sous WordPress, il peut s&rsquo;av\u00e9rer fort utile d&rsquo;utiliser le syst\u00e8me de miniature du <abbr title=\"Content Management System\">CMS<\/abbr>.<br \/>\nMais, ne vous est-il jamais arriv\u00e9 de tomber \u00e0 court de dimensions de miniature ? Ces miniatures souvent bien pratiques pour s&rsquo;offrir diff\u00e9rents affichages des \u00ab\u00a0Images \u00e0 la une\u00a0\u00bb, ou encore<!--more--> pour se permettre des mises en pages riches et soign\u00e9es.<br \/>\nPour cela WordPress pr\u00e9voit une fonction bien pratique qui permet d&rsquo;ajouter de nouveaux redimensionnement des images. Ces nouvelles miniatures vont venir s&rsquo;ajouter lors de l&rsquo;upload d&rsquo;une image.<\/p>\n<h2>La fonction <code>add_image_size()<\/code><\/h2>\n<p>Le fonction <a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/add_image_size\"><code>add_image_size()<\/code><\/a> permet d&rsquo;ajouter ces diff\u00e9rents dimensions dans votre th\u00e8me.<br \/>\nEn incluant la gestion des miniatures et cette fonction d&rsquo;ajout dans la page <code>functions.php<\/code> de votre th\u00e8me, il vous est facile de cr\u00e9er des miniatures aux dimensions personnalis\u00e9es.<\/p>\n<p>La fonction se pr\u00e9sente ainsi :<\/p>\n<pre class=\"code\"><code class=\"php\">&lt;?php\r\n\tadd_image_size( 'home-mini', 220, 180, true );\r\n?&gt;<\/code><\/pre>\n<p>Le premier argument <code>home-mini<\/code> est le nom de votre miniature, le second <code>220<\/code> est sa largeur en pixels, le troisi\u00e8me sa hauteur, et enfin le dernier <code>true<\/code> ou <code>false<\/code> (par d\u00e9faut <code>false<\/code>) d\u00e9finit si l&rsquo;image doit \u00eatre automatiquement recadr\u00e9e ou non.<\/p>\n<p>Ainsi, votre page <code>functions.php<\/code> pourrait ressembler \u00e0 cela :<\/p>\n<pre class=\"code\"><code class=\"php\">&lt;?php\r\nif ( function_exists( 'add_theme_support' ) ) {\r\n\tadd_theme_support( 'post-thumbnails' );\r\n}\r\n\r\nif ( function_exists( 'add_image_size' ) ) { \r\n\tadd_image_size( 'category-mini', 300, 9999 );\r\n\tadd_image_size( 'home-mini', 220, 180, true );\r\n}\r\n?&gt;<\/code><\/pre>\n<p>La valeur <code>9999<\/code> permet de renseigner une hauteur illimit\u00e9e.<br \/>\nIci nous avons dans un premier temps v\u00e9rifi\u00e9 que la fonction <code>add_the_support()<\/code> existe (\u00e7a \u00e9vite l&rsquo;affichage d&rsquo;erreur), puis nous avons ajout\u00e9 le support des Images \u00e0 la une.<br \/>\nEnsuite nous avons v\u00e9rifi\u00e9 que la fonction <code>add_image_size()<\/code> existe pour pouvoir rajouter deux formats de miniature.<\/p>\n<p>Vous pouvez \u00e9galement ajouter ces nouvelles dimensions au panneau de m\u00e9dias au moment d&rsquo;ins\u00e9rer une image dans votre contenu gr\u00e2ce \u00e0 cette fonction :<\/p>\n<pre class=\"code\"><code class=\"language-php\">&lt;?php\r\nfunction juiz_display_image_sizes( $sizes ) {\r\n   $sizes['category-mini'] = __( 'Mini Category', 'juiz' );\r\n   $sizes['home-mini'] = __( 'Mini Home', 'juiz' );\r\n\u00a0\r\n   return $sizes;\r\n}\r\nadd_filter( 'image_size_names_choose', 'juiz_display_image_sizes' );\r\n?&gt;<\/code><\/pre>\n<p>Le probl\u00e8me avec cette technique c&rsquo;est qu&rsquo;elle n&rsquo;est pas tr\u00e8s flexible.<br \/>\nImaginez que vous ayez besoin de rajouter des dimensions en plein d\u00e9veloppement du projet, ou apr\u00e8s mise en production.<br \/>\nLes images et miniatures d\u00e9j\u00e0 existantes devront \u00eatre restaur\u00e9es pour pouvoir retrouver tous les formats de miniature, dont ceux ajout\u00e9s nouvellement.<\/p>\n<p>Pour cela, je vous propose une solution.<\/p>\n<h2>Le plugin <em lang=\"en\">Simple Image Sizes<\/em><\/h2>\n<p>Le <em lang=\"en\">plugin <a href=\"http:\/\/wordpress.org\/extend\/plugins\/simple-image-sizes\/\" hreflang=\"en\">Simple Image Sizes<\/a><\/em>, d\u00e9velopp\u00e9 par <a href=\"http:\/\/profiles.wordpress.org\/users\/Rahe\/\">Rahe<\/a> (twitter <a href=\"http:\/\/twitter.com\/#!\/Raherian\">@Raherian<\/a> &#8211; <a href=\"http:\/\/www.nicolas-juen.fr\/\">Nicolas Juen<\/a>\u2026 en vrai) est une petite merveille parfaitement adapt\u00e9e \u00e0 notre cas.<\/p>\n<p>Voici, en vrac, ses fonctionnalit\u00e9s :<\/p>\n<ul>\n<li>Possibilit\u00e9 de cr\u00e9er de nouvelles dimensions de miniatures\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1387\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-create.png\" alt=\"\" width=\"550\" height=\"87\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-create.png 550w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-create-300x47.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n<\/li>\n<li>Possibilit\u00e9 d&rsquo;inclure ces dimensions dans le panneau d&rsquo;insertion d&rsquo;image lors de l&rsquo;\u00e9dition d&rsquo;un post\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1388\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-custom.png\" alt=\"\" width=\"550\" height=\"280\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-custom.png 550w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-custom-300x152.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n<\/li>\n<li>Possibilit\u00e9 de mettre \u00e0 jour chacune des dimensions cr\u00e9\u00e9es \u00e0 tout moment\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1389\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-edit.png\" alt=\"\" width=\"251\" height=\"57\" \/><\/p>\n<\/li>\n<li>Possibilit\u00e9 de r\u00e9g\u00e9n\u00e9rer les miniatures en s\u00e9lectionnant quelles dimensions r\u00e9g\u00e9n\u00e9rer\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1390\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-regenerate.png\" alt=\"\" width=\"550\" height=\"280\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-regenerate.png 550w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-regenerate-300x152.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n<\/li>\n<li>Possibilit\u00e9 de r\u00e9cup\u00e9rer le code PHP \u00e0 injecter dans <code>functions.php<\/code> en cas de d\u00e9sinstallation du plugin (le but \u00e9tant de pouvoir conserver l&rsquo;usage des miniatures cr\u00e9\u00e9es par le plugin)\n<p class=\"center\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-1391\" title=\"\" src=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-code.png\" alt=\"\" width=\"550\" height=\"119\" srcset=\"https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-code.png 550w, https:\/\/www.creativejuiz.fr\/blog\/wp-content\/uploads\/2011\/07\/image-size-code-300x64.png 300w\" sizes=\"(max-width: 550px) 100vw, 550px\" \/><\/p>\n<\/li>\n<\/ul>\n<p>Pour en apprendre plus, je vous invite \u00e0 visiter la <a href=\"http:\/\/wordpress.org\/extend\/plugins\/simple-image-sizes\/\" hreflang=\"en\">page du plugin (en)<\/a>.<br \/>\nCe plugin est bien mis \u00e0 jour par son auteur, qui, par ailleurs, appr\u00e9cie grandement les retours pr\u00e9cis (probl\u00e8mes rencontr\u00e9s, suggestions) des utilisateurs et d\u00e9veloppeurs.<\/p>\n<p>En esp\u00e9rant que la gestion des miniatures deviennent ais\u00e9e pour vous \ud83d\ude42<\/p>\n<div class=\"sources\">\n<h2>Liens utiles et sources<\/h2>\n<ul>\n<li><a href=\"http:\/\/wordpress.org\/extend\/plugins\/simple-image-sizes\/\" hreflang=\"en\">Page du plugin Simple Image Sizes<\/a><\/li>\n<li><a href=\"http:\/\/www.nicolas-juen.fr\/\">Site Web de Nicolas Juen<\/a><\/li>\n<li><a href=\"http:\/\/twitter.com\/#!\/Raherian\">Le twitter de @Raherian<\/a><\/li>\n<li><a href=\"http:\/\/profiles.wordpress.org\/users\/Rahe\/\">Le profil d\u00e9veloppeur de Rahe<\/a><\/li>\n<li><a href=\"http:\/\/codex.wordpress.org\/Function_Reference\/add_image_size\">Le code pour la fonction <code>add_image_size()<\/code><\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Lors d&rsquo;un d\u00e9veloppement sous WordPress, il peut s&rsquo;av\u00e9rer fort utile d&rsquo;utiliser le syst\u00e8me de miniature du CMS. Mais, ne vous est-il jamais arriv\u00e9 de tomber \u00e0 court de dimensions de miniature ? Ces miniatures souvent bien pratiques pour s&rsquo;offrir diff\u00e9rents affichages des \u00ab\u00a0Images \u00e0 la une\u00a0\u00bb, ou encore<\/p>\n","protected":false},"author":4,"featured_media":1386,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","footnotes":""},"categories":[50,9,12,13],"tags":[374,372,351,256,51,373],"coauthors":[597],"class_list":["post-1232","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ressources-telechargements","category-tutoriels","category-veille-technologique","category-wordpress","tag-add_image_size","tag-custom","tag-dimension","tag-image","tag-plugin","tag-sizes"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/1232","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/comments?post=1232"}],"version-history":[{"count":0,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/posts\/1232\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media\/1386"}],"wp:attachment":[{"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/media?parent=1232"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/categories?post=1232"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/tags?post=1232"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.creativejuiz.fr\/blog\/wp-json\/wp\/v2\/coauthors?post=1232"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}