elephant-php-ini

Récupérer la première image d’un article via PHP pour WordPress

Si vous envisagez d’afficher une image sur votre page d’accueil ou de catégorie, mais que vous n’utilisez pas l’outil de miniatures incorporé dans WordPress et encore moins un script comme timthumb ou même un custom field alors il vous reste l’utilisation de cette fonction PHP. Testé et utilisé sur de nombreux sites personnels !

Cette fonction PHP peut être insérée notamment dans un fichier home.php ou index.php à l’intérieur d’une boucle.

Elle aura pour effet de récupérer la première image présente dans votre article. De cette manière, vous pourrez l’utiliser comme miniature sur votre page d’accueil par exemple.

Vous devez tout d’abord ajouter ces lignes de code dans le fichier functions.php :

<?php function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];

if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;
}
?>

Vous remarquerez qu’il est possible d’indiquer une image par défaut à la ligne :

$first_img = "/images/default.jpg";

Il nous faut ensuite identifier la zone où commence la boucle (loop) de WordPress puis appeler la fonction suivante :

<?php echo catch_that_image() ?>

Ce tutoriel est certes un peu technique pour le néophyte mais j’ai trouvé intéressant de partager cette technique avec la communauté francophone de WordPress dont le tutoriel source est l’œuvre de Jean-Baptiste Jung de WPRecipes.

Aurélien Denis est le fondateur du projet WordPress Channel proposant tutoriels et podcasts librement téléchargeables. En 2010, il fonde Neticpro, une agence Web spécialisée WordPress. Il est aussi co-fondateur du site Protuts.net (tutoriels PC/Mac/Linux) et community manager pour l’Imagine Cup 2011/2012, une compétition mondiale organisée par Microsoft. Voir tous les tutoriels de Aurélien Denis →