簡體   English   中英

(Umbraco)如何按標簽列出相關頁面?

[英](Umbraco) How can I list related pages by tags?

在網站的最后一個節點是顯示文章的地方,每個人都有自己的標簽,當然其中一些標簽可以相同,因此我為有效的標簽寫了一個宏(列出了文章的標簽)用戶正在查看),我已經將Tag數據類型用於“ Article”文檔類型,並且Macro可以正常工作; 但是我在編寫宏以列出那些具有相同標簽的文章時遇到了問題,我將其稱為RelatedContent.xslt 這是我在Umbraco電視教程中找到的AllTags.xslt的代碼,可以正常工作:

<xsl:template match="/">
        <div class="tags">
        <xsl:variable name="Factor" select="6 div Exslt.ExsltMath:max(tags:getAllTagsInGroup('default')/tags/tag/@nodesTagged)"/>
            <xsl:for-each select="tags:getAllTagsInGroup('default')/tags/tag">
                <a class="tag{round($Factor * @nodesTagged)}x" href="?tag={.}">
                    <xsl:value-of select="."/>
                </a><br/>
            </xsl:for-each>
        </div>
</xsl:template>

而RelatedContent.xslt的代碼是這樣的:

<xsl:template match="/">

    <ul>
        <xsl:for-each select="$currentPage/node [string(data [@alias='umbracoNaviHide']) != '1'] and (umbraco.library:Request('tag') = '' or contains(data [@alias = 'tags'], umbraco.library:Request('tag')))">
            <li>
                <a href="{umbraco.library:NiceUrl(@id)}">
                    <xsl:value-of select="@nodeName"/>
                    <xsl:value-of select="newsTitle"/>
                </a>
            </li>
        </xsl:for-each>
    </ul>

</xsl:template>

我沒有找到任何可以幫助我理解這一點的東西,所以我無法實現。 我將感謝您的幫助。 感謝您的建議。

(Umbraco 6.1.3)

相關內容的代碼使用舊的XML模式。

替換此位:

<xsl:for-each select="$currentPage/node [string(data [@alias='umbracoNaviHide']) != '1']
and (umbraco.library:Request('tag') = '' or contains(data [@alias = 'tags'],
umbraco.library:Request('tag')))">
</xsl:for-each>

<xsl:variable name="tag" select="umbraco.library:Request('tag')"/>
<xsl:for-each select="$currentPage/*[@isDoc][umbracoNaviHide != 1][contains($tag,./tag)]">
</xsl:for-each>

/ node元素在4.6+模式中不存在,並且元素名稱替換為documentTypeAlias的名稱。

因此,如果您有一個帶有屬性articleTitle的文檔類型article ,它將是這樣的:

$currentPage/article/
$currentPage/article/articleTitle

而不是舊的架構(這對於4.5以上的版本是不正確的)

$currentPage/node[@nodeTypeAlias = 'article']
$currentPage/node[./data[@alias] = 'articleTitle']

您可以在Umbraco Wiki上看到兩種模式之間的區別:

http://our.umbraco.org/wiki/reference/xslt/45-xml-schema

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM