Делаем теги и ссылки к ним в статьях битрикса

Можно решить эту задачу так. Для этого в конец компонента bitrix:news (скопировав его) следует вставить функцию:

<?
function addLinkForTag($tagname) {
    $taglink = str_replace(' ','+',$tagname); // Пробелы должны заменяться плюсами
    return '<a href="/search/?tags='.$taglink.'">'.$tagname.'</a>'; // Добавляем ссылку. Внимание, у вас ссылка может быть не "/search/", а какая-либо другая!
}
?>

И для тех же статей (при условии, что все стандартно) в компоненте bitrix:news.list можно написать что-либо подобное:

<?foreach($arItem["FIELDS"] as $code=>$value):?> // Это уже было - стандартный перебор свойств каждой новости
    <small>
    <?
    if (GetMessage("IBLOCK_FIELD_".$code) == 'Теги') { // Желательно написать как-нибудь по другому, но на данный момент идей как правильно - нет :)
        if(CModule::IncludeModule("search")) { // Необходимо подключить модуль поиска. Без него работать не будет
            $tags_array = tags_prepare($value, "s1"); // Распиливаем теги в массив
            echo GetMessage("IBLOCK_FIELD_".$code).': '; // Выводим название "Теги"
            $tags_array = array_map("addLinkForTag",$tags_array); // Применяем функцию для создания ссылок для элементов массивов
            $result_tags = implode(", ", $tags_array); // Соединяем все обратно в одну строку
            echo $result_tags; // Выводим результат
        }
    } else { // Если у нас не Тег, то просто выводим как обычно "ключ" : "значение" (эта строка была по умолчанию)
        echo GetMessage("IBLOCK_FIELD_".$code).': '.$value;
    }
    ?>
    </small>
    <br />
<?endforeach;?>

Затем создаем страницу в битриксе и вставляем в нее компонент поиска bitrix:search.page. Собственно, ссылка на него и будет ссылкой, на которую надо поменять мой “/search/”.

bitrix