Как получить теги, связанные со статьей в Joomla

мне нужно получить теги, связанные со статьей в Joomla 3.1.5

Я пробовал следующие, но они не возвращают строку:

echo $article->item->tags->itemTags;

и

$tags = $article->get("tags");

и просто для записи я загружаю информацию о статье как таковую (получение названия статьи работает отлично)

$article = JTable::getInstance("content");
$article->load(JRequest::getInt("id"));
$pageTitle = $article->get("title");
$user =& JFactory::getUser();

4 ответов


Если вы посмотрите в components/com_content/views/article/tmpl/default.php, теги отображаются следующим образом:

if ($this->params->get('show_tags', 1) && !empty($this->item->tags->itemTags)) {
    $this->item->tagLayout = new JLayoutFile('joomla.content.tags');
    echo $this->item->tagLayout->render($this->item->tags->itemTags);
}

таким образом, вы можете основывать его на этом:

надеюсь, что это помогает


Если вы хотите загрузить Теги статьи в модуль / плагин и т. д., и предполагая $id - это ID статьи, вы можете сделать

$tags = new JHelperTags;
$tags->getItemTags('com_content.article', $id);
var_dump($tags);

чтобы добавить к ответу Marko D, добавьте это, чтобы отформатировать теги, как в макете статьи / блога.

echo JLayoutHelper::render('joomla.content.tags', $tags->itemTags);

отображение тегов статей в модуле, который отображает статьи Joomla, такие как mod_articles_latest.

$itemtags = (new JHelperTags)->getItemTags('com_content.article', $item->id);
$taglayout = new JLayoutFile('joomla.content.tags');
$tags='';
if( !empty($itemtags) )
    $tags = '<div class="itemtags">'.str_replace(',','',$taglayout->render($itemtags)).'</div>';