2017-09-11 8 views
0

J'ai une page Wordpress, dans laquelle mes images apparaissent sur la gauche et mon texte apparaît sur la droite. Les images tombent sous le texte lorsque la page est chargée sur l'écran mobile. J'ai un code PHP pour réaliser tout cela, il bascule fondamentalement les lieux d'image et de texte, et les attributs gauche ou droit à chacun.La légende de l'image Wordpress ne s'affiche pas correctement

Mais puisque cela est en place, j'ai du mal à ajouter des légendes d'images. Quand je veux ajouter les légendes des images dans mon admin WordPress, la légende ne vient pas sous l'image mais il est mon article de texte (ainsi, sur la partie droite de la page). Je suppose que mon code PHP attribue automatiquement cet endroit à chaque texte.

J'ai besoin les légendes des images à sous mes images, et je pense que cela a beaucoup à voir avec ce code PHP que vous pouvez voir ci-dessous. Mais je ne sais pas comment réparer ça.

Voici mon PHP:

<?php if (have_posts()): ?> 
 
    <div class="container"> 
 
    <?php while(have_posts()): the_post(); ?> 
 
     <div class="row"> 
 
     <div id="content_post"> 
 
      <div class="col-lg-push-5 col-lg-6 col-md-push-6 col-md-6 col-sm-12 col-xs-12 "> \t \t \t \t \t \t 
 
      <?php 
 
       //get content from back office , filter imgs except featured img to place them later in <div id='img_content_right'> 
 
       $content2 = get_the_content();      
 
       $removed_imgs = array();     
 
       $content2 = preg_replace_callback('#(?!<img.+?id="featured_img".*?\/>)(<img.+? />)#',function($r) { 
 
       global $removed_imgs; 
 
       $removed_imgs[] = $r[1]; 
 
       return ''; 
 
       },$content2); 
 

 
       //add filter to the_content to strip images except img_menu et featured_img   
 
       add_filter('the_content', 'strip_images',2);      
 
       function strip_images($content){    
 
       $content=preg_replace('/(?!<img.+?id="img_menu".*?\/>)(?!<img.+?id="featured_img".*?\/>)<img.+?\/>/','',$content);         
 
       return $content;        
 
       } 
 
       the_content(); 
 
      ?> 
 
      </div> 
 
     </div> \t 
 
     <div class="col-lg-pull-6 col-lg-5 col-md-pull-6 col-md-6"> \t 
 
      <div id='img_content_right'> 
 
      <?php  
 
      //append the images stripped from content 
 
      foreach($removed_imgs as $img){ 
 
      echo $img; } ?> 
 
      </div> \t 
 
     </div>  
 
     </div> 
 
    </div> \t 
 
    <?php endwhile; ?> 
 
<?php endif; ?> \t

Répondre

0

Pour gérer correctement la légende dont vous avez besoin pour obtenir l'objet de poste d'attache, puis regarder le post_excerpt.

Il y a une fonction dans WordPress get_attached_media, qui liste toutes les images dans un contenu de messages. Ce sera plus facile à parcourir puis en utilisant regex pour trouver les images.