2016-08-07 13 views
0

Dies ist mein Code unten. Es verwendet array_chunk(), um die Ergebnisse in Dreiergruppen aufzuteilen, so dass ich nur 3 Spalten pro .row habe.Ist das normal für eine Foreach innerhalb einer Foreach?

<?php 
    $blogusers = get_users('exclude=1,12'); //WordPress's get_users() 
    $split = array_chunk($blogusers,3); 

    // Array of WP_User objects. 
    foreach ($split as $user) { 

     echo '<div class="row">'; 


      foreach ($user as $details){ 

      // get user profile picture or default to a plain one 
      if (get_field('show', 'user_'.$details->ID)){ 
       $img = get_field('profile_pic','user_'.$details->ID); 
      } 

      echo 
      //output each user 
      '<div class="columns small-4"> 
       <div class="profile"> 
       <div class="profile-image-wrap">  
        <img src="'.$img.'" class="team-image"> 
        <a href="" class="profile-hover-link"><i class="fa fa-bars fa-bars fa-3x"></i></a>  
       </div>  
       <div class="profile-details-wrap"> 
        <h4>'.$details->display_name.'</h4> 
        <h5>'.the_field('title', 'user_'.$details->ID).'</h5> 
        <div class="hr-wrap"> 
        <hr class="team-hr"> 
        </div>         
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam aliquam massa quis mauris sollicitudin commodo.</p> 
        <a class="view" href="">view profile</a> 
       </div> 
       </div> 
      </div>';    
      } 
     echo '</div>'; 
     } 

Das Problem ist, mit dieser Linie

<h5>'.the_field('title', 'user_'.$details->ID).'</h5>

Es einfügen nicht die Ausgabe in diesen <h5> Tag wie unten zu sehen.

enter image description here

ich auf dieser Linie doppelte und einfache Anführungszeichen verwenden versucht haben, aber dass es nicht beheben.

Wie kann ich das beheben?

Antwort

2

Ich nehme an, Sie verwenden die Advanced Custom Fields plugin. Wenn Sie sich die docs for the_field ansehen, werden Sie sehen, dass sie

Zeigt den Wert des angegebenen Felds an. Diese Funktion entspricht echo get_field($field_name);

Welches ist genau das, was Sie wollen. In Ihrem Fall soll die Funktion den Feldwert zurückgeben, nicht drucken. Also, ändern Sie Ihre Linie zu

<h5>'.get_field('title', 'user_'.$details->ID).'</h5> 

und Sie sind gut zu gehen.

Das Problem in Ihrem Fall ist, dass Sie eine Zeichenfolge erstellen, bevor Sie es an den Browser ausdrucken. Während dieser Bauphase rufen Sie the_field an, was eine eigene echo ing. Deshalb erscheint der Titel vor dem ganzen div.

+1

Sie schlagen mich dazu ... – Rasclatt

+0

agh, guter Fang! – ProEvilz

Verwandte Themen