2017-06-05 8 views
1

Ich dachte, dass ich meine Frage vereinfachen würde. Dies könnte ein PHP-Problem sein, also entschuldige ich mich im Vorhinein, da dies vielleicht kein ACF-Problem ist, aber es könnte ein Problem sein, dass ich nicht genug PHP weiß, ich bin mir nicht sicher, warum das nicht funktioniert.Wie verstecken Sie ein leeres ACF-Feld mit PHP?

Also ich verwende das ACF Repeater-Feld und ich möchte das Repeater Subfield ausblenden, wenn keine Daten in das Feld eingegeben werden.

<?php 

    // check if the repeater field has rows of data 

    $feature_posts = the_sub_field('feature_image_post'); 

    if(have_rows('repeat_field')): 

     // loop through the rows of data 
     while (have_rows('repeat_field')) : the_row(); 

      // display a sub field value 
       echo '<div style="float:left">'; 
       the_sub_field('restaurant_name'); 
       echo '</div>'; 
       echo '<div style="float:left">'; 
       the_sub_field('restaurant_state'); 
       echo '</div>'; 

       echo '<div style="float:left">'; 
       the_sub_field('restaurant_image_post'); 
       echo '</div>'; 

        if (empty($feature_posts)) { 
        echo '<div style="display:none">'; 
        the_sub_field('feature_image_post'); 
        echo '</div>'; 
        } 

        else { 

         the_sub_field('feature_image_post'); 
        } 

     endwhile; 

    else : 

     // no rows found 

    endif; 

    ?> 

Antwort

1

eine bedingte Anweisung hinzufügen get_sub_field Verwendung zu überprüfen, ob das Feld leer ist. the_sub_field Echos der Wert und get_sub_field gibt den Wert zurück, so dass es in einer bedingten Anweisung verwendet oder in einer Variablen gespeichert werden kann.

if(get_sub_field('restaurant_name') != "") { 
    echo '<div style="float:left">'; 
    the_sub_field('restaurant_name'); 
    echo '</div>'; 
}