有一说一,Drupal网站的文章以及其他内容类型是可以显示作者和发布日期的。只要你在结构-内容类型-编辑-显示设置这里选中“显示作者和日期信息”,都可以显示该内容的作者用户名和创建日期,显示的格式默认为“由大伟哥提交于2020-08-15,周六, 19:25”。
但是随着时间的推移,事情是会发生变化的。特别是技术方面,新技术的发展日新月异,我们发布的内容也会迅速变的out-dated,这样会严重误导我们的访客朋友,很可能不经意间就给他们挖了一些坑。因此作为网站或者博客的主人,我们需要不断地根据实际情况更新内容,给访客带来最新最准确有用的信息。同时当我们更新内容的时候,我们需要显要说明一下最近更新的时间,让用户和搜索引擎知道他们正在看到的内容是与时俱进的。
先说两个不修改Drupal的主题模版的方案:一是我们可以在编辑内容的时候,同时在正文的开始或者末尾,甚至在修改的地方加一个标注,写明什么修改的时间和原因,这样会有点麻烦,也不太醒目;第二种办法呢,可以把编著信息里面原来的发布时间清空,这样保存后,发布时间就是内容最后修改的时间。这种方法会把修改时间当成发布时间,最早的发布时间就没有记录了。这两种方法对于注重细节的人来说,都不算理想。大伟哥通过修改主题模版的方式,实现了这样的效果:
“由大伟哥提交于2020-08-15,周六, 19:25,最近修改于2020-08-19,周二,00:14”
作者、发布时间、修改时间一目了然,而且是由Drupal自动处理,省事。
以下是方法:
从继承的主题里复制node.html.twig文件到自定义主题的模版目录:
cp web/core/themes/bartik/templates/node.html.twig web/themes/custom/daweibro/template/.
打开复制的node.html.twig文件,找到:
{% if display_submitted %} <div class="node__meta"> {{ author_picture }} <span{{ author_attributes }}> {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} </span> {{ metadata }} </div> {% endif %}
修改为:
{% if display_submitted %} <div class="node__meta"> {{ author_picture }} <span{{ author_attributes }}> {% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %} {% if node.changed.value is defined %} {% set node_upd = node.changed.value|format_date() %} ,最近更新于{{ node_upd|placeholder|striptags }} {% endif %} </span> {{ metadata }} </div> {% endif %}
很简单,就是拿到了node最后修改的时间,然后处理一下文本输出就可以了。
- 140 阅读
添加新评论