Gérer les attributs ALT des images sous WordPress

Fonction pour mettre a jour ou créer l’attribut ALT des images de votre WordPress.

Mettre à jour l'attribut ALT d'une image
function update_image_alt(){
  global $post;
  $args = array( 'post_type' => 'attachment', 'post_mime_type' => 'image/jpeg','posts_per_page' => -1 );
  $myposts = get_posts( $args );
  foreach ( $myposts as $post ) :
    if(empty(get_post_meta( $post->ID , '_wp_attachment_image_alt', true))){
      add_post_meta( $post->ID , '_wp_attachment_image_alt', get_the_title() );
      echo $post->ID.' > '.get_the_title().' - add<br />';
    }else{
      update_post_meta( $post->ID , '_wp_attachment_image_alt', get_the_title() );
      echo $post->ID.' > '.get_the_title().' - update<br />';
    }
  endforeach;
  wp_reset_postdata();
}
update_image_alt();

La fonction est à déclencher une fois. Via un bouton ou en brut dans un fichier php.

update_image_alt();

Centrer du texte dans une image faite en php

Création d'image en php

Dans un article précédent, je vous montrai comment générer une images de type QRcode mais c’était avec un petit formulaire avec un couche de javascript.
Cette fois ci, on va se pencher sur la création d’image en avec la bibliothèque GD de PHP.

La création d’une image

Dans un premier temps, on va créer une image simple (toute rouge)

header('Content-type: image/png');
$image = imagecreate(150, 150);
$background = imagecolorallocate($image, 255, 0, 0);
imagepng($image);
  • header(« Content-type: image/png »);
    C’est une fonction qui sert à définir quel type de document sera affiché, dans notre cas, il s’agit d’une image png
  • $image = imagecreate(150, 150);
    Pour définir la taille de l’image de l’image que l’on créé
  • $background = imagecolorallocate($image, 255, 0, 0);
    Nous définissons une couleur (en RGV) pour remplir l’image
  • imagepng($image);
    Et on créer l’image !

Ajouter du texte

header('Content-type: image/png');
$image = imagecreate(150, 150);
$background = imagecolorallocate($image, 255, 0, 0); /* On définie une couleur de fond (ici ROUGE) */
$noir = imagecolorallocate($image, 0, 0, 0); /* On définie une couleur que nous utiliserons après*/
imagestring($image, 5, 10, 10, "mon texte", $noir); /* On insère le texte "mon texte" avec une largeur de caractère de 5 à 10px du haut et 10px de la gauche*/
imagepng($image);

Centrer le texte dans l’image

header('Content-type: image/png');

/* * *******************************
 * Parametre
 * ********************************
 */
$largeur = 150; /* longueur de l'image */
$hauteur = 150; /* hauteur de l'image */
$image = imagecreate($largeur, $hauteur);
/* Background */
$background = imagecolorallocate($image, 0, 255, 0);
/* Couleur du text */
$couleurTxt = imagecolorallocate($image, 255, 0, 0);
/* texte à mettre dans l'image */
$txt = "mon texte";
/* Taille du texte */
$font = 3;
/* Hauteur et largeur des caratères */
$largeurCaractere = ImageFontWidth($font);
$hauteurCaractere = ImageFontHeight($font);
/* Longueur du texte (taille caratère X nombre de caractère) */
$largeurTxt = $largeurCaractere * strlen($txt);
/* Recherche de la position horizontale centrale pour centrer le texte */
$positionCentreHor = ceil(($largeur - $largeurTxt) / 2);
/* Recherche de la position horizontale centrale pour centrer le texte */
$positionCentreVer = ceil(($hauteur - $hauteurCaractere) / 2);
/* Ajout du texte au centre de l'image */
$image_string = ImageString($image, $font, $positionCentreHor, $positionCentreVer, $txt, $couleurTxt);
/* Création de l'image */
imagepng($image);

N’hésitez pas à contribuer à cet article en commentant, en apportant des conseils (ou mise en garde) sur la création d’image en php.