给 WordPress 添加旧文章自定义提醒功能

在这个信息爆炸的时代,我们缺的不是大量的信息,而是准确有效的信息。可能我们前两年写得文章内容已经跟现在的情况不太符合了,特别是一些教程攻略,可能随着软件、数据的更新不再准确。那么我可以对长期未更新的旧文章做一个提示,告诉读者这篇文章已经长期未更新,请注意文章准确性。

如下图所示,本站对超过一定时间未更新的旧文章增加了提示功能,在超期文章末尾会自动出现如下提示文字,也算是对读者负责任吧。实现方法其实非常简单,仅需要在 function.php 添加代码片段,检测文章的更新时间,根据设定的条件在 WordPress 正文前添加设定的字符串。

给 WordPress 添加旧文章自定义提醒文字
给 WordPress 添加旧文章自定义提醒文字

1、给 WordPress 添加旧文章自定义提醒

如上图所示,本站目前实用的代码片段如下。其中被注释的一行为将提示内容放置在 WordPress 正文之前,各位可以结合自身按需调整。另外还可以给outdated-content-notic绑定相应的CSS,不在话下。

// 添加老文章提醒信息
function append_outdated_content_notice($content) {
    $modified = get_the_modified_time('U');
    $current = current_time('timestamp');
    $diffTime = ($current - $modified) / DAY_IN_SECONDS;
    
    if ($diffTime > 365) {
        $lastModified = get_the_modified_time('Y年n月j日');
        $message = '<div class="outdated-content-notice">注意:本文最后更新于' . $lastModified .
                   ',如果文章内容或图片资源有变,请通过留言告知,我们会及时更新,谢谢!</div>';
        $content .= $message; //提示文字放在正文末尾
        // $content = $notice . $content; //提示文字放在正文之前
    }
    
    return $content;
}

add_filter('the_content', 'append_outdated_content_notice');

2、给特定分类/文章添加旧文提醒

本功能使用了WordPress的get_the_modified_time函数,它可以获得文章的最后修改时间,包括你对内容、标签、置顶等信息的修改都会影响最后修改时间,第7行>365 即最后修改时间大于一年的文章将会出现提示,你可以根据具体情况进行修改。

另外我们还可以控制哪些分类的文章显示显示提醒,仅需增加合适的判定条件即可。比如 Kevin's Space 对时间比较敏感的分类主要是“实用教程”和“免费资源”,那么我们获取到分类 ID 后,可以将上述代码中第 7 行修改为:

if($diffTime > 365 && in_category(array(3,284)) ){

很简单对不对?你还可以在该判定中添加的条件有:是否文章(is_single())、特定标签(has_tag('id'))、特定作者(get_post_field('id'))和取反(!)等。

1460 730 Kevin's

发表评论

请输入关键词…