bedingt echo in Meta-Box Datenschleife

Ich arbeite an einem thematischen untergeordneten Thema und verwende die WPAlchemy-Meta-Box-class , um eine “Artwork Info” -Meta-Box zu erstellen, die ich am Ende jedes Beitrags wie folgt anzeigen möchte:

Titel
Mittel
Maße
Zusätzliche Information

Meine Instanz der class ist in der functions.php wie folgt definiert:

 $prefix = 'wpf_'; $artinfo_mb = new WPAlchemy_MetaBox(array ( 'id' => '_custom_meta', // underscore prefix hides fields from the custom fields area 'title' => 'Artwork Info', 'template' => STYLESHEETPATH . '/custom/artwork-meta.php', 'context' => 'normal', )); 

Und hier ist ein Beispiel für den HTML- artwork_meta.php für jedes Feld in artwork_meta.php :

  

the_field('title'); ?> <input type="text" style="width:99%" name="the_name(); ?>" value="the_value(); ?>"/>

Ich verwende diese function in functions.php , um die Daten in jedem Beitrag über ein Array der Felder zu drucken:

 function display_artwork_info() { global $artinfo_mb; $artinfo_mb->the_meta(); $values = array('title','medium','dimen','additional'); echo the_content(); // loop through and conditionally echo the value with a line break foreach ($values as $val) { if ($val != ''){ $mb->the_value($val); echo '
'; } } } add_action('thematic_post', 'display_artwork_info');

Alles funktioniert gut, außer der foreach ($values as $val) immer die Zeilenumbrüche wieder, auch wenn der Wert des Feldes keine Daten enthält. Wenn zum Beispiel die Felder ‘Medium’ und ‘Zusätzliche Informationen’ leer sind, wird der HTML-Code wie folgt angezeigt:

 Title 

Dimensions

Stimmt etwas nicht mit meiner Schleife? Verwende ich die falsche WPAlchemy-function, um die Metadaten zu echo? Danke im Voraus 🙂

Solutions Collecting From Web of "bedingt echo in Meta-Box Datenschleife"

$ val wird niemals == ” hier, weil $ val Ihren Feldnamen enthält, nicht die Daten. Verwenden Sie außerdem get_the_value, um es zurückgeben zu lassen, the_value gibt nur die Daten aus.

 foreach ($values as $val) { if ($artinfo_mb->get_the_value($val) != ''){ $artinfo_mb->the_value($val); echo '
'; } }