在使用Pbootcms开发内容页或文章页的模板时,通常会在页面中添加相关文章、热门文章等列表,这不仅大幅降低了网站的跳出率,同时对网站的SEO来说也较为有利,促进新内容被抓取的可能性。
通常Pbootcms内容页调用文章列表官方开发文档给出了较为详细的方法,使用以下代码便可以轻松的进行调用。
{pboot:list scode=指定栏目ID} <a href= "[list:link]">[list:title]</a> {/pboot:list}
当然,网站会存在不同的栏目分类,通常内容页调用的文章列表一般为本栏目的文章,因此我们需要将以上代码进行优化,优化后的代码如下
{pboot:list scode={content:scode}}<!-- 调用当前内容页,同一个栏目的文章列表 --> <a href= "[list:link]">[list:title]</a> {/pboot:list}
为了更加具体的控制文章列表,我们可以根据官方开发手册添加控制命令
page=* 是否分页,非必填,用于列表是否执行分页,可设置1或0,本功能适合首页分页等场景
start=* 起始数据(V1.3.2+),非必填,用于需要从第几条开始
num=* 每页数量,非必填,用于控制分页大小
order=* 排序方式,非必填,用于输出内容的排序方式,可选:date、sorting、istop、isrecommend、isheadline、visits、likes、oppose、等字段,其中sorting为按后台填写的排序,122版本开始支持自定义模式,如:order='date desc,id desc' 、order='sorting desc,id desc',(V1.3.7+)还支持random随机排序
filter=*|x,y 数据过滤,非必填,用于对列表内容进行过滤筛选,如:filter=title|ASP,PHP 只显示标题含有ASP和PHP的内容,如果需要只显示推荐,可使用如下过滤参数: filter=isrecommend|1 (V1.2.0+版本用下面的方式更好)
isico=*、ispics=*、istop=*、isrecommend=*、isheadline=* 用于对数据进行特殊筛选,可选值1和0,非必填,比如只调取推荐内容:isrecommend=1
tags=x,y tags方式数据过滤,非必填,用于对列表内容进行过滤筛选,如:tags='ASP,PHP',则为含有asp或php标签的内容,那么可以用 tags={content:tags}来调用当前文章的相关文章
start=* 起始数据(V1.3.2+),非必填,用于需要从第几条开始
但是在实际的开发过程中,发现当文章较少时,内容页调用的文章列表优势会包含当前文章,这算是一个小BUG,我们需要Pbootcms内容页调用的文章列表排除当前展示的文章,实现这个目标也比较简单,只需在调用文章列表代码中
嵌套一个判断,便可以轻松解决这个问题,代码如下:
{pboot:list scode={content:scode}} {pboot:if({content:id}!=[list:id])} <p>[list:title]</p> {/pboot:if} {/pboot:list}
之后记得在后台刷新缓存,如果有添加CDN的还应删除CDN缓存数据,再来刷新内容页,发现已经不再显示当前文章了。