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! :)
Das ist eigentlich wirklich klar. Es behebt mein Problem. Vielen Dank. – Yagayente