2016-11-02 5 views
0

Ich habe zwei Felder für ACF-Beiträge für einen benutzerdefinierten Beitragstyp festgelegt.ACF mehrere leere Felder

edition_number und artist_proofs

Einige Post-Typen nicht alle Daten für diese gesetzt haben, während einige Post-Typen tun. Ich setze diese Funktion in die content-single.php-Vorlage, damit sie diese Information weitergeben kann.

Aus irgendeinem Grund gibt dies immer noch "Edition von" zurück, obwohl ein Beitrag, den ich habe, nichts in diesen beiden Feldern hat.

function ffm_edition() { 
    if (get_field('edition_number') && get_field('artist_proofs')) { 
     echo 'Edition of ' , the_field('edition_number') , ', ' , the_field('artist_proofs') , 'APs'; 
    } elseif (empty(get_field('artist_proofs'))) { 
     echo 'Edition of ' , the_field('edition_number'); 
    } elseif (empty(get_field('edition_number') && get_field('artist_proofs'))) { 
     //DO NOTHING 
    } 
} 

Gibt es etwas, was mir diesbezüglich fehlt?

Antwort

0

Ich erkennen dies ein einfacher Kontext Fehler ... war

Die zweite Prüfung wird überprüft nur, wenn das artist_proofs Feld leer ist. Da beide leer sind, gibt es immer edition of zurück. Ich brauchte einen Scheck für eine gültige Zeichenfolge + eine leere Zeichenfolge zu machen:

} elseif (get_field('edition_number') && empty(get_field('artist_proofs'))) { 

voller Schnipsel:

function ffm_edition() { 
    if (get_field('edition_number') && get_field('artist_proofs')) { 
     echo 'Edition of ' , the_field('edition_number') , ' + ' , the_field('artist_proofs') , 'APs'; 
    } elseif (get_field('edition_number') && empty(get_field('artist_proofs'))) { 
     echo 'Edition of ' , the_field('edition_number'); 
    } elseif (empty(get_field('edition_number')) && empty(get_field('artist_proofs'))) { 
    //DO NOTHING 
    } 
} 
Verwandte Themen