Contenu principal
Taille d'image supplémentaire

Davantage de tailles d’images dans l’administration de WordPress : la V2, allégée au lait de poney

Il y a 4 mois, j’expliquais ma méthode pour ajouter des tailles d’images supplémentaires dans l’administration de WordPress. Cette méthode nécessitait des ajouts dans la base de données et la reprise de deux fonctions de WordPress. Tout ceci est à présent largement simplifié puisqu’il ne nous faudra… qu’une dizaine lignes de code.

Rappelez-vous :

Cependant, je suis quand même surpris que WordPress ne permette pas simplement une telle chose, grâce à une fonction ou un hook.

Et bien c’est chose faite !
En effet, avec la version 3.3 de WordPress, est arrivé un nouveau filtre nous permettant de faire ceci très simplement. A croire que les Dieux de WordPress ont entendu mes prières.

Première chose, plus besoin d’enregistrement des dimensions dans la base de données (oui Madame, du coup vous pouvez supprimer les anciennes valeurs).
Deuxièmement, les tailles supplémentaires sont ajoutées automatiquement, plus besoin de les ajouter une à une manuellement.
Et ceci parce que j’ai découvert, quelques temps après le premier tutoriel, une variable très pratique : il s’agit de la variable globale $_wp_additional_image_sizes. C’est un array qui contient toutes les tailles additionnelles, ainsi que leur dimensions.
Dernier point, grâce à ce nouveau filtre, plus besoin de reprendre les deux longues fonctions.
Au passage, on pourra aussi « renommer » une taille d’origine afin de lui donner un nom « visuel » plus parlant. Par exemple, vous avez un portfolio sur votre site, lequel utilise la taille « medium » comme miniature, nous pourrons renommer « Moyenne » en « Miniature de Portfolio ».

Trêve de blabla, place au code :

010203040506070809101112

add_filter( 'image_size_names_choose', 'sf_image_size_names_choose' );

function sf_image_size_names_choose($size_names) {
	//$size_names['medium'] = __('Portfolio thumb', 'my-theme');		// This is an example to change a size name
	global $_wp_additional_image_sizes;
	if ( count($_wp_additional_image_sizes) ) {
		foreach($_wp_additional_image_sizes as $name => $props) {
			$size_names[$name] = __($name, 'my-theme');
		}
	}
	return $size_names;
}

A la ligne 4 vous avez l’exemple dont je parlais pour changer le nom d’une taille d’image, il suffit de décommenter la ligne et d’éditer le nom.
Le tableau que l’on doit renvoyer doit avoir cette forme : array( 'size-name' => 'size-label', ... ).
Comme les tailles supplémentaires n’ont pas de label, on peut en créer un grâce la traduction de WordPress avec __($name, 'my-theme'), cependant il faudra éditer les fichiers .po/.mo de votre thème et ajouter les traductions. Sinon vous aurez simplement leur nom initial, ce qui est déjà suffisant.

Taille d'image supplémentaire

See ya!