У меня есть следующий скрипт, чтобы перечислить теги сообщения без ссылок, но он помещает запятую после всех тегов, включая последнюю. Есть ли способ запретить скрипту добавлять запятую к последнему тегу в списке? Я пробовал исследовать его, но там действительно не так много всего об этой конкретной строке wp.
<?php $posttags = get_the_tags(); if ($posttags) { foreach($posttags as $tag) { echo $tag->name . ', '; } } ?>
Используйте rtrim. Он обрезает последний указанный символ.
$posttags = get_the_tags(); if ($posttags) { $taglist = ""; foreach($posttags as $tag) { $taglist .= $tag->name . ', '; } echo rtrim($taglist, ", "); }
if ($posttags) { echo implode( ', ', array_map( function($tag) { return $tag->name; }, $posttags ) ); }
Я имею тенденцию делать это, когда мне нужно конкатрировать переменное количество элементов.
$posttags = get_the_tags(); if ($posttags) { foreach($posttags as $tag) { $temp[] = $tag->name; } } if (!empty($temp)) echo implode(', ',$temp);
Измените расположение этой запятой и установите небольшое условие
<?php $posttags = get_the_tags(); if ($posttags) { $first=true; foreach($posttags as $tag) { if($first) { echo $tag->name; $first=false; } else { echo ', '.$tag->name; } } } ?>
Вам нужна функция wordpress the_tags
. Он будет отражать теги, поэтому вам не понадобится весь цикл.