Вывод тегов со ссылками на детальной странице новостей

  • 1297
   
Разделы

Я не претендую на право называться автором всей размещенной здесь информации, так как некоторые моменты были заимствованы в доступных источниках и немного переработаны для удобства пользования.


По возможности указываю ссылки на источники.


Копируйте, комментируйте, переделывайте, пользуйтесь. Кому не жалко, оставляйте ссылку на источник.

Частный вебмастер по разработке сайтов на 1С Битрикс и WordPress

При создании блога потребовалось вывести теги на детальной странице записей. Базовыми средствами почему-то не получилось и решил сделать небольшой «костыль».

Первым делом в разделе SEO на странице редактирования записи в самом низу находим строку для тегов и заполняем в нее теги через запятую. Если по какой-то причине у вас нет строки для тегов можете просто добавить дополнительное свойство и применить по предназначению.

Далее в параметрах вывода компонента находим (если нет, то добавляем) параметр «DETAIL_FIELD_CODE».

"DETAIL_FIELD_CODE" => array(
0 => "TAGS",
),

Теперь в $arResult['FIELDS']['TAGS'] есть теги, только они представлены в виде строки, а нам надо вывести их как отдельные ссылки. Соответственно берем $arResult['FIELDS']['TAGS'] и с помощью explode() делим строку по запятым на массив.

$tags = explode(',', $arResult['FIELDS']['TAGS'], PHP_INT_MAX);

Также перед выводом, элементы надо избавить от пробелов в начале и конце. Для этого их прогоняем через trim().

<?=trim($tag);?>

Весь код выглядит следующим образом

<!-- ВЫВОД ТЕГОВ -->
<!-- Проверяем есть ли вообще теги -->
<? if ($arResult['FIELDS']['TAGS']) :?>
<div class="blog-detail-tag">
<div class="blog-detail-tag__body">
<div class="blog-detail-tag__title">
Теги:
</div>
<div class="blog-detail-tag__tags">
<?
// так как теги даны как строка, с помощью explode() делим строку на слова и в виде массива присваиваем переменной
$tags = explode(',', $arResult['FIELDS']['TAGS'], PHP_INT_MAX);
// запускаем цикл на вывод массива по одному элементу
foreach ($tags as $tag) : ?>
<!-- создаем ссылку для перехода в поиск -->
<!-- теги перед выводом пропускаем через trim(), чтобы убрать пробелы -->
<a class="blog-detail-tag__item link" href="/blog/search/?q=<?=trim($tag);?>"><strong><?=trim($tag);?></strong></a>
<? endforeach; ?>
</div>
</div>
</div>
<? endif; ?>

Описанный метод вполне применим при необходимости вывода тегов на странице списка новостей (записей).

Комментарии

Комментарий отправлены на валидацию!

Теги: