PHP
<?php $categories = get_the_category(); foreach ($categories as $category){ echo $category->cat_name;} ?>
В настоящее время это отобразит категории как «cat1cat2cat3». Я хочу, чтобы это было «cat1, cat2, cat3»
Я попробовал это echo $category->cat_name . ', ';
echo $category->cat_name . ', ';
но это только добавляет запятую после каждой категории. Даже если сообщение имеет только одну категорию: пример. «cat1», а также добавляет запятую к последней категории в списке: Ex. «cat1, cat2, cat3»,
Итак, как я могу получить commмас, но отсутствует, если только одна категория и отсутствует в последней категории, если ее список?
Вы также можете использовать implode () для этого:
$categories = get_the_category(); $category_names = array(); foreach ($categories as $category) { $category_names[] = $category->cat_name; } echo implode(', ', $category_names);
Попробуйте следующее: (Начиная с PHP 5.3)
$categories = array_map(function($category) { return $category->cat_name; }, get_the_category()); echo implode(', ', $categories);
вы можете сделать что-то вроде:
<?php $categories = get_the_category(); $cat = ''; foreach ($categories as $category){ $cat .= $category->cat_name . ', '; } $cat = substr($cat,0,-2); echo $cat; ?>
с наилучшими пожеланиями,