!
也想出现在这里? 联系我们
广告位

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

之前写过一篇 WordPress 主题添加最新更新文章列表功能 的文章,可以很好地解决老文章更新后无法及时展示的问题。但是对于一些没有更新的老文章依旧不能很好地展示,特别是随着建站时间增长,一些之前写过的文章逐渐被埋没在历史的角落里。为了能更好地展示这些文章,我们可以在文章页面下添加一个“历史上的今天”功能获取老文章列表予以展示。

该功能代码取至柳城大佬的 wp-today 插件,该插件因年久失修已经在 WordPress 下架了。不过我从网上搜到的版本经测试依旧能用,文末会提供下载。在原有插件代码的基础上,我略微调整了下,并针对 OptionsFrameWork 后台框架,做了些设置选项。(注意:历史上的今天功能,仅针对建站一年以上的网站有效,时间太短的网站也就不存在历史上的今天了不是吗?ㄟ( ▔, ▔ )ㄏ )。

使用方法:

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

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

调用代码

然后在你需要调用的位置添加如下代码,一般是主题的 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. $options[] = array(
  13. 'name' => __('历史上的今天-标题文字', 'QGG'),
  14. 'desc' => __('左上角的标题文字', 'QGG'),
  15. 'id' => 'today_in_history_title',
  16. 'std' => __('历史上的今天', 'QGG'),
  17. 'type' => 'text');
  18. $options[] = array(
  19. 'name' => __('历史上的今天-显示文章数', 'QGG'),
  20. 'desc' => __('纯数字,显示列表文章数量。不明白?<a href="https://blog.quietguoguo.com" rel="external nofollow" >点击这里</a> 进行留言。', 'QGG'),
  21. 'id' => 'today_in_history_num',
  22. 'std' => 5,
  23. 'class' => 'mini',
  24. 'type' => 'text');
  25. ?>

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

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress纯代码实现用户关注功能

2023-12-3 19:37:06

WordPress教程

如何优化wordpress网站加载速度

2023-12-8 13:52:27

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索