4

我有一个有很多用户的网站,每个用户都有自己的迷你网站。这个“迷你网站”的一部分是博客。我想为每个作者展示一个标签云。Tag 和 Tagger 的基本云功能将执行此操作,但适用于所有作者。添加 author_id 不起作用。

我尝试使用频道条目循环按作者获取所有条目,然后显示与这些条目关联的标签。

{exp:channel:entries author_id="1" channel="blog"}
{exp:tag:tags entry_id="{entry_id}"}
<li>{title}<a href="#">{tag_name}</a><span>{total_entries}</span></li>
{/exp:tag:tags} 
{/exp:channel:entries}

这确实给了我一个只有作者使用过的标签列表(在标签中,它在标签器中不起作用)。但是,如果一个标签被多次使用,它会不止一次地列出它。

原生 EE 和标签功能不会让我做我想做的事。我可能需要使用 php(一个插件)来做到这一点。获取作者使用的所有标签,将它们放入数组中,删除重复项,然后将其输出到我的模板中。我确实在 Solspace 发过帖子,但他们说我需要使用 PHP。

在我这样做之前,我想看看是否有更简单的方法或其他可以做到这一点的附加组件。如果这是可行的方法,我也欢迎任何有关此类插件方法的提示。

4

2 回答 2

1

不幸的是,我认为您在这里唯一的选择是自定义 PHP 来删除重复项。

于 2012-10-27T17:30:01.860 回答
1

使用标记器和查询模块,您应该能够得到您需要的东西(也可能是 Solspace 标签,我只是没有使用过那个,所以不能肯定地说)。

像这样的查询

SELECT tag_name  
FROM exp_tagger
WHERE author_id = 7

为该作者提供一组标签。

您可以像这样将它与查询模块一起使用,将当前条目author_id用作查询的动态部分。

{exp:query sql= "SELECT tag_name FROM exp_tagger WHERE author_id = {author_id}"}
    {tag_name}
{/exp:query}
于 2012-10-27T17:53:09.690 回答