静态化站点,某一篇文章发布时会生成静态文件,此时下一篇文章还不存在,等下一篇文章发布时 也不会主动触发这篇文章静态页面的更新。

此时我们可以使用任务计划定时触发这些页面的更新,脚本如下

<#assign pageCount=50/>
<#assign dealCount=0/>
<#assign dealDate=(.now?long-1000*3600*24)?number_to_date?string/>
<@_categoryList>
<#list page.list as a> <#-- 遍历分类 -->
<#-- 获取昨天发布的文章总数量 -->
<@_contentList categoryId=a.id containChild=true startPublishDate=dealDate containChild=true pageIndex=1 count=pageCount>
  <#list 1..page.totalPage as n>
  <#-- 分批获取昨天发布的文章 -->
<@_contentList categoryId=a.id containChild=true startPublishDate=dealDate containChild=true pageIndex=n count=pageCount>
  <#list page.list as a>
<#-- 重新生成上一篇文章静态页面 -->
<@_contentList categoryId=a.categoryId endPublishDate=a.publishDate orderField='publishDate' pageIndex=2 pageSize=1>
<#if 2=page.pageIndex>
<#list page.list as a>
<@_publishContent id=a.id><#assign dealCount++/></@_publishContent>
</#list>
</#if>
</@_contentList>
  </#list>
</@_contentList>
  </#list>
</@_contentList>
</#list>
共生成${dealCount}条内容静态页面
</@_categoryList>

其中的逻辑是取昨天发布的文章,然后分别更新他们的上一篇文章,这里的昨天可以随任务计划执行频率修改,如果是昨天,那这个任务计划应该每天执行一次,改成上个小时,那就每个小时执行一次

下面也附上上一篇 下一篇的代码,防止搜到这篇文章的小伙伴真正想找的是上一篇下一篇怎么写 ,而不是静态化时如何用

<@_contentList categoryId=content.categoryId endPublishDate=content.publishDate orderField='publishDate' pageIndex=2 count=1><#if 2=page.pageIndex><#list page.list as a><a href="${a.url!}">上一篇 ${a.title}</a></#list></#if></@_contentList>
<@_contentList categoryId=content.categoryId startPublishDate=content.publishDate orderField='publishDate' orderType='asc' pageIndex=1 count=1><#list page.list as a><a href="${a.url!}">下一篇  ${a.title}</a></#list></@_contentList>


2条评论
  • 演示账号1
    演示账号1[管理员]
    2020-10-27 21:56
    reply 回复 (1)

    上一篇下一篇写成接口呢?不好吗,实时更新。。。。

发表评论