the_excerpt, personnalisation wordpress

Publié le 17 avril 2009 par Myrmex

Aujourd’hui, je vous livre le fruit de mes recherches ! Peut-être avez-vous remarqué que la présentation de Free Tools a changé depuis hier… En effet, les articles sont présentés un peu différemment.

Mon objectif était double :

  • placer le visuel (image de l’article) en haut d’article (avec un lien)
  • mettre le début de l’article et si cela répond a votre recherche, lire l’article en entier.

La première solution m’étant venu à l’esprit a été de copier les thèmes WordPress dit “magazine”. En effet, ces derniers affichent des présentations originales et proche de mon but recherché. Toutefois, j’ai vite déchanté… la solution couramment admise dans ce type de thème est d’ajouter une variable dans le champ Custom Field de WordPress et un petit code dans le source du theme pour en tenir compte… mais, repasser dans les quelques 400 artciles de Free Tools pour personnaliser cette variable… ce fut définitivement “non” avant de commencer ! Je suis bien trop fainéant pour ca !

Donc, je me suis orienté vers une solution sur mesure… le défit a été de récupérer l’url de l’image dans l’article ! Plutôt qu’un long discours, je vous livre le code (tout se passe avec la fonction “preg_match_all”) :

          <?php
           // Set the post content to a variable
           $szPostContent = $post->post_content;
           // Define the pattern to search
           $szSearchPattern = '~<img [^\>]*\ />~';
           // Run preg_match_all to grab all the images and save the results in $aPics
           preg_match_all ( $szSearchPattern, $szPostContent, $aPics );
           // Count the results
           $iNumberOfPics = count($aPics[0]);
           // Check to see if we have at least 1 image
           if ( $iNumberOfPics > 0 )
            {
             // Now here you would do whatever you need to do with the images
             // For this example I'm just going to echo them
             for ( $i=0; $i < $iNumberOfPics ; $i++ )
             {
              echo('<a href="');
              the_permalink();
              echo('">');
              echo $aPics[0][$i];
              echo('</a>');
             };
           };

          the_excerpt();
          echo ('<a href="');
          the_permalink();
          echo('">Lire la suite…</a>');
          ?>

Ce code n’est pas de mon cru… je l’ai un peu modifié pour qu’il réponde à quelques exigences supplémentaires :

  • ajout du lien sur l’image pour se rendre dans l’article complet
  • ajout du lien “lire la suite…”

Voila, rien de bien revolutionnaire…. en espérant que cette astuce vous servira également…