2016-08-07 3 views
0

Ich benutze ACF Taxinomy Unterfeld. Ich suche nach einer Möglichkeit, mehrere Kategorien aus diesem Feld anzuzeigen. Der Code, den ich verwende, zeigt alle Kategorien an, aber das Wort berührt sich und trennt sich nicht. Wie werden diese Kategoriewörter getrennt angezeigt?Stellen Sie Kategorie Wörter erscheinen getrennt auf ACF

     <?php 
         $term = get_sub_field('categories'); 
          if($term) { 
           foreach($term as $t) { 
           $t = get_category($t); 
           echo $t->name; 
           } 
          } 
          ?> 

see the category in gray on this picture

Antwort

1

Sie brauchen nur einen Platz auf Ihre Kategorienamen zu concatenate. Sie können dies auf verschiedene Arten erreichen.

Der einfachste Weg wäre:

<?php 
$term = get_sub_field('categories'); 
if ($term) { 
    foreach ($term as $t) { 
     $t = get_category($t); 
     echo $t->name . ' '; 
    } 
} 

Auf diese Weise verkettet einen Raum ' 'nach jedes Element. Ihre Zeichenfolge wird also mit einem letzten Leerzeichen enden (auch als trailing whitespace bezeichnet). Dies kann ein Problem sein oder auch nicht.

Ein anderer Weg:

<?php 
$term = get_sub_field('categories'); 
if ($term) { 
    $first = true; 
    foreach ($term as $t) { 
     $t = get_category($t); 
     echo ($first ? '' : ' ') . $t->name; 
     $first = false; 
    } 
} 

Dieses Mal verwenden wir ein boolean $first Variable und den ternären Operator Shorthand If/Else den Raum vor jedes Element außer dem ersten verketten. Auf diese Weise erhält Ihr HTML-Code eine saubere Zeichenfolge (ohne Leerzeichen).

Auch eine andere Art und Weise ein sauberes String zu erhalten wäre:

<?php 
$term = get_sub_field('categories'); 
if ($term) { 
    $cats = []; 
    foreach ($term as $t) { 
     $t = get_category($t); 
     $cats[] = $t->name; 
    } 
    echo implode(' ', $cats); 
} 

In diesem Beispiel push alle Kategorienamen zu $cats Array schließlich zu konvertieren (und echo) dieses Array String mit implode .

Ich hoffe, das hilft Ihnen, es zu verstehen! :)

+0

Das ist eigentlich wirklich klar. Es behebt mein Problem. Vielen Dank. – Yagayente

Verwandte Themen