WordPress 网站纯代码实现“历史上的今天”文章调用方法

网站创建一年多了,文章也有500多篇了,如何让历史文章多个展现的机会,除了相关文章推荐,站长们还经常会用到“历史上的今天”功能,即在文章末端调用前几年同一天发布的文章列表。

这个功能最初是由柳城创建的 wp-today 插件实现的,这个插件已经停更多年了,其核心代码也不复杂,我们可以复制里面的代码到 WordPress 网站主题的 functions.php 文件里。

//历史上的今天,代码来自柳城博客的WP-Today插件
function wp_today(){
global $wpdb;
$post_year = get_the_time('Y');
$post_month = get_the_time('m');
$post_day = get_the_time('j');
$sql = "select ID, year(post_date_gmt) as h_year, post_title, comment_count FROM
$wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish'
AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day'
order by post_date_gmt DESC limit 5";
$histtory_post = $wpdb->get_results($sql);
if( $histtory_post ){
foreach( $histtory_post as $post ){
$h_year = $post->h_year;
$h_post_title = $post->post_title;
$h_permalink = get_permalink( $post->ID );
$h_comments = $post->comment_count;
$h_post .= "<li><strong>$h_year:</strong>&nbsp;&nbsp;<a href='".$h_permalink."' title='".$h_post_title."' target='_blank'>$h_post_title($h_comments)</a></li>";
}
}
if ( $h_post ){
$result = "<hr><h3>历史上的今天:</h3><ul>".$h_post."</ul>";
}
return $result;
}
function wp_today_auto($content){
if( is_single() ){
$content = $content.wp_today();
}
return $content;
}
add_filter('the_content', 'wp_today_auto',9999);

实现的效果如下图

“历史上的今天”模块,调取了历史上同一天的文章列表,标注了年份,文章标题、链接和评论数,你的网站建站时间越长,则越有价值。

前几天网站的 Autumn Pro 主题进行了升级,更新后函数文件 functions.php 中自加的代码都被清空了,让我对主题更新又爱又恨。发现之前苏醒的方法挺不错,他开发的主题会在 functions.php 中引用一个子函数文件,用户自己添加的代码就写在这个文件中,这样主题升级时就不会被清空了。

目前我的主题函数中自加的代码共三个,另两个是:


历史上的今天:

相关推荐

如何实现 WordPress 网站页面内容的分页显示?

我的 WordPress 网站中有个“阅读记录”页面,按年份记录了自己一年中阅读过的图书目录。五年下来,文章的内容比较多,页面拉得很长,浏览起来不太方便。所以我想让页面内容按年份分页显示,一年一个分页,通过导航条切换,方便地浏览。 WordPress 编辑器中有“分页符”按钮,在需要分页的地方点击此按钮,就会加入 <!--n ...

WordPress 网站如何开启维护模式?

网站因更新或维护等原因,会导致访问出错的情况,这时我们可能需要临时关闭网站。如果你的网站是用 WordPress 程序搭建的,则你可通过以下方法开启网站维护模式,给出一个维护提示的页面,以确保用户体验不受影响,同时也能够保护你的数据安全。 一、使用主题功能 许多 WordPress 主题都内置了“维护模式”的选项,我们只 ...

WordPress 上传附件提示“父目录是否可以被服务器写入?”解决办法

昨天有空闲,对一个许久没有打理过的网站更新了一篇文章,但在上传附件时,提示错误:无法创建目录 uploads/2024/11。它的父目录是否可以被服务器写入? 尝试了几次都不行,就登录服务器查看目录写入权限。发现 /wp-content/ uploads/ 的权限是755,和其他网站的文件夹权限是一致的。 我又手动创建了 2024/11/ 文件夹, ...

如何解决更新 WordPress 需要访问您网页服务器的权限问题?

网站提示有 WordPress 更新可用,但在线更新时却提示:要执行请求的操作,WordPress需要访问您网页服务器的权限。请输入您的 FTP 登录凭据以继续。 我输入 FTP 登录用户名和密码,网页无响应。我猜测会否主机名错误了,就填写了 FTP 地址,仍然是错误的。 网络搜索了一下,有网友遇到相同问题,给出的解决办法是,在 Wor ...

11 条评论

  1. 之前好多博主那都看到过这个功能

    • @网友小宋 一个小功能,但确实挺有用,特别是对建站时间久的博客来说,可以把沉睡的文章推送到前台来。

  2. 不错!

  3. 话说,如果这段代码不长,那相应的插件应该不大。如果用代码,忘记的话,下次如果主题升级,是不是又没有了。不过记录下来,就容易找到了。

    • @飞牛 我的许多博文也就是起收藏夹的作用,方便自己应用,哈哈。

      • @maqingxi 确实,我也是把修改的记录下来,方便以后,哪怕出问题也方便找原因。
        对了,有空换个友链,方便互访交流。以前的yseeker换过友链后,现在你这新博客总是输入你的网址,有时候还输入错munie,哈哈。

  4. 厉害厉害,学习了

  5. C先生

    博主这主题风格挺好,好心水,最近在建自己的博客,方便告知下主题名称吗?

    • @C先生 使用的是Autumn-Pro主题,一款优秀的付费主题,目前有活动,你可通过此链接优惠购买。https://www.xintheme.com/theme/57904.html?ref=142

      • C先生

        @maqingxi 嗯呐,十分感谢!

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。