1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress 添加历史上的今天文章列表

之前写过一篇 wordpress 主题添加最新更新文章列表功能 的文章,可以很好地解决老文章更新后无法及时展示的问题。但是对于一些没有更新的老文章依旧不能很好地展示,特别是随着建站时间增长,一些之前写过的文章逐渐被埋没在历史的角落里。为了能更好地展示这些文章,我们可以在文章页面下添加一个“历史上的今天”功能获取老文章列表予以展示。
WordPress 添加历史上的今天文章列表-云模板该功能代码取至柳城大佬的 wp-today 插件,该插件因年久失修已经在 WordPress 下架了。不过我从网上搜到的版本经测试依旧能用,文末会提供下载。在原有插件代码的基础上,我略微调整了下,并针对 OptionsFrameWork 后台框架,做了些设置选项。(注意:历史上的今天功能,仅针对建站一年以上的网站有效,时间太短的网站也就不存在历史上的今天了不是吗?ㄟ( ▔, ▔ )ㄏ )。

使用方法:

新建一个名为 module_today_in_history.php 的文件,然后将以下代码丢到改文件中。

  1. <?php
  2. //历史上的今天,代码来自柳城博主的 WP-Today 插件
  3. function today_in_history(){
  4. 
    
  5. 	$title = QGG_options('today_in_history_title');    // $title = "历史上的今天";          其他主题用户改成固定值
  6. 	$limit = QGG_options('today_in_history_num');    // $limit = 5;          其他主题用户改成固定值
  7. 
    
  8. 	global $wpdb;
  9. 	$post_year = get_the_time('Y');
  10. 	$post_month = get_the_time('m');
  11. 	$post_day = get_the_time('j');
  12. 
    
  13. 	$sql = "select ID, year(post_date_gmt) as h_year, post_title, comment_count FROM 
  14. 			$wpdb->posts WHERE post_password = '' AND post_type = 'post' AND post_status = 'publish'
  15. 			AND year(post_date_gmt)!='$post_year' AND month(post_date_gmt)='$post_month' AND day(post_date_gmt)='$post_day'
  16. 			order by post_date_gmt DESC limit $limit";
  17. 	$histtory_post = $wpdb->get_results($sql);
  18. 	if( $histtory_post ){
  19. 		foreach( $histtory_post as $post ){
  20. 			$h_year = $post->h_year;
  21. 			$h_post_title = $post->post_title;
  22. 			$h_permalink = get_permalink( $post->ID );
  23. 			$h_comments = $post->comment_count;
  24. 			$h_post .= "<li>$h_year:&nbsp;&nbsp;<a href='".$h_permalink."' title='Permanent Link to ".$h_post_title."'>$h_post_title <span>($h_comments)</span></a></li>";
  25. 		}
  26. 	}
  27. 
    
  28. 	if ( $h_post ){
  29. 		$result = "<section class='history-in-today'><h2>".$title."</h2><div><ul>".$h_post."</ul></div></section>";
  30. 	}else{
  31. 		$result = "<section class='history-in-today'><h2>".$title."</h2><div>哇哦~~~,历史上的今天没发表过文章哦</div></section>";
  32. 	}
  33. 
    
  34. 	echo $result;
  35. }
  36. today_in_history();
  37. ?>

调用代码

然后在你需要调用的位置添加如下代码,一般是主题的 single.php 文件中。

  1. <?php
  2. // 历史上的今天功能
  3. if( QGG_options('today_in_history_open') ){
  4. 	include get_stylesheet_directory(). '/diy/modules/module_today_in_history.php';
  5. }
  6. ?>

其他主题的话,如果不需要后台设置选项,去掉 if 判断即可。

设置选项

最后,对于使用 OptionsFramework 框架的主题用户,可在 options.php 文件中添加如下代码设置后台选项。

  1. <?php
  2. 	$options[] = array(
  3. 		'name' => __('蝈蝈文章', 'QGG'),
  4. 		'type' => 'heading' );
  5. 	// 文章页历史上的今天
  6. 	$options[] = array(
  7. 		'name' => __('历史上的今天', 'QGG'),
  8. 		'desc' => __('开启', 'QGG'),
  9. 		'id' => 'today_in_history_open',
  10. 		'std' => true,
  11. 		'type' => 'checkbox');
  12. 
    
  13. 	$options[] = array(
  14. 		'name' => __('历史上的今天-标题文字', 'QGG'),
  15. 		'desc' => __('左上角的标题文字', 'QGG'),
  16. 		'id' => 'today_in_history_title',
  17. 		'std' => __('历史上的今天', 'QGG'),
  18. 		'type' => 'text');
  19. 
    
  20. 	$options[] = array(
  21. 		'name' => __('历史上的今天-显示文章数', 'QGG'),
  22. 		'desc' => __('纯数字,显示列表文章数量。不明白?<a href="https://blog.quietguoguo.com">点击这里</a> 进行留言。', 'QGG'),
  23. 		'id' => 'today_in_history_num',
  24. 		'std' => 5,
  25. 		'class' => 'mini',
  26. 		'type' => 'text');
  27. 
    
  28. ?>

样式文件的话没有调整,大家根据自己喜好自行调整一下吧。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/94884

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注