这篇文章应该算是Halo Java轻量博客程序的最后一篇主题开发的最后篇文章。在前面老蒋有整理到Halo页面调用、公共模板、全局变量的调用。这里我们是不是有需要页面模板标签的调用,比如最新文章、菜单、图片组的调用,这篇文章是比较全的37个Halo页面模板标签调用整理。
模板标签可以运用在页面的任何地方。
第一、文章(postTag)
1、获取最新文章(latest)
<@postTag method="latest" top="3">
<#list posts as post>
3、根据年份归档(archiveYear)
<@postTag method="archiveYear"> <#list archives as archive> <h1>年份: ${archive.year?c}</h1>
</pre><#list archive.posts?sort_by("createTime")?reverse as post>
- <#list archive.posts?sort_by("createTime")?reverse as post>
- <#list archive.posts?sort_by("createTime")?reverse as post>
- <#list comments.content as comment>
- ${comment.author!}:${comment.content!}
</#list></@commentTag>
2、获取所有评论的数量(count)<@commentTag method="count"> <span>评论数量:${count!0}</span> </@commentTag>
第三、分类目录(categoryTag)
1、获取所有分类目录(list)<@categoryTag method="list"> <#list categories as category>
第四、标签(tagTag)
1、获取所有标签(list)<@tagTag method="list"> <#list tags as tag>
第五、菜单(menuTag)
1、获取所有菜单(list)<@menuTag method="list">
</pre><#list menus as menu>
- ${menu.name!}
</#list></@menuTag>
2、获取多级菜单(tree)<@menuTag method="tree">
</pre><#list menus as menu>
- ${menu.name!} <#if menu.children?? && menu.children?size gt 0>
<#list menu.children as child>
- ${child.name!}
</#list></#if> </li> </#list>
</@menuTag>
3、根据分组获取菜单(listByTeam)<@menuTag method="listByTeam" team="main">
</pre><#list menus as menu>
- ${menu.name!}
</#list></@menuTag>
4、根据分组获取多级菜单(treeByTeam)<@menuTag method="treeByTeam" team="main">
</pre><#list menus as menu>
- ${menu.name!} <#if menu.children?? && menu.children?size gt 0>
<#list menu.children as child>
- ${child.name!}
</#list></#if> </li> </#list>
</@menuTag>
第六、友情链接(linkTag)
1、获取所有友情链接(list)<ul> <@linkTag method="list"> <#list links as link> <li> ${link.name!} </li> </#list> </@linkTag> </ul>
2、乱序获取所有友情链接(listByRandom)
<ul> <@linkTag method="list"> <#list links as link> <li> ${link.name!} </li> </#list> </@linkTag> </ul>
3、获取分组友情链接(listTeams)
<@linkTag method="listTeams"> <#list teams as team> <h1>${team.team}</h1>
</pre><#list links as link>
- ${link.name!}
</#list></#list>
</@linkTag>
4、乱序获取分组友情链接(listTeamsByRandom)<@linkTag method="listTeamsByRandom"> <#list teams as team> <h1>${team.team}</h1>
</pre><#list links as link>
- ${link.name!}
</#list></#list>
</@linkTag>
5、获取所有友情链接的数量(count)<@linkTag method="count"> <span>友情链接数量:${count!0}</span> </@linkTag>
第七、图库(photoTag)
1、获取所有图片(list)<@photoTag method="list"> <#list photos as photo>
</#list> </@photoTag>
2、获取所有分组图片(listTeams)
<@photoTag method="listTeams"> <#list teams as team> <h1>${team.team}</h1> <#list team.photos as photo>
</#list> </#list> </@photoTag>
3、根据分组获取图片(listByTeam)
<@photoTag method="listTeams" team="风景"> <#list team.photos as photo>
</#list> </@photoTag>
4、获取所有图片的数量(count)
<@linkTag method="count"> <span>图片数量:${count!0}</span> </@linkTag>
第八、分页(paginationTag)
1、获取首页文章列表的分页数据(index)<ul class="pagination"> <@paginationTag method="index" page="${posts.number}" total="${posts.totalPages}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
2、获取文章归档列表的分页数据(archives)
<ul class="pagination"> <@paginationTag method="archives" page="${posts.number}" total="${posts.totalPages}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
3、获取搜索结果文章列表的分页数据(search)
<ul class="pagination"> <@paginationTag method="search" page="${posts.number}" total="${posts.totalPages}" keyword="${keyword}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
4、获取标签下文章列表的分页数据(tagPosts)
<ul class="pagination"> <@paginationTag method="tagPosts" slug="${tag.slug!}" page="${posts.number}" total="${posts.totalPages}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
5、获取分类下文章列表的分页数据(categoryPosts)
<ul class="pagination"> <@paginationTag method="categoryPosts" slug="${category.slug!}" page="${posts.number}" total="${posts.totalPages}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
6、获取图库页面图片列表的分页数据(photos)
<ul class="pagination"> <@paginationTag method="photos" page="${photos.number}" total="${photos.totalPages}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
7、获取日志页面日志列表的分页数据(journals)
<ul class="pagination"> <@paginationTag method="journals" page="${journals.number}" total="${journals.totalPages}" display="3"> <#if pagination.hasPrev> <li> 上一页 </li> </#if> <#list pagination.rainbowPages as number> <#if number.isCurrent> <li> <span class="current">${number.page!}</span> </li> <#else> <li> 下一页 </li> </#if> </@paginationTag> </ul>
这样,我们联合其他的Halo主题开发的页面调用标签、公共模板、函数等,基本上可以完成Halo主题开发需要的调用。
相关文章:
1、Halo博客主题开发之页面变量调用示范整理
2、Halo博客主题模板开发之公共宏模板代码规范
3、Halo博客主题开发之全局变量模板标签调用整理