加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > wordpress > 正文

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

发布时间:2020-12-14 14:25:36 所属栏目:wordpress 来源:网络整理
导读:由站长 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。 之前写过一篇 wordpress 主题添加最新更新文章列表功能 的文章,可以很好地解决老文章更新后无法及时展示的问题。但是对于一些没有更新的老文章依旧不

以下代码由PHP站长网 52php.cn收集自互联网现在PHP站长网小编把它分享给大家,仅供参考

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



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

使用方法:

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

<?php

//历史上的今天,代码来自柳城博主的 WP-Today 插件

function today_in_history(){

?

$title = QGG_options('today_in_history_title'); // $title = "历史上的今天"; 其他主题用户改成固定值

$limit = QGG_options('today_in_history_num'); // $limit = 5; 其他主题用户改成固定值

?

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 $limit";

$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>$h_year:&nbsp;&nbsp;<a href='".$h_permalink."' title='Permanent Link to ".$h_post_title."'>$h_post_title <span>($h_comments)</span></a></li>";

}

}

?

if ( $h_post ){

$result = "<section class='history-in-today'><h2>".$title."</h2><div><ul>".$h_post."</ul></div></section>";

}else{

$result = "<section class='history-in-today'><h2>".$title."</h2><div>哇哦~~~,历史上的今天没发表过文章哦</div></section>";

}

?

echo $result;

}

today_in_history();

?>

调用代码

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

<?php

// 历史上的今天功能

if( QGG_options('today_in_history_open') ){

include get_stylesheet_directory(). '/diy/modules/module_today_in_history.php';

}

?>

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

设置选项

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

<?php

$options[] = array(

'name' => __('蝈蝈文章','QGG'),

'type' => 'heading' );

// 文章页历史上的今天

$options[] = array(

'name' => __('历史上的今天',

'desc' => __('开启',

'id' => 'today_in_history_open',

'std' => true,

'type' => 'checkbox');

?

$options[] = array(

'name' => __('历史上的今天-标题文字',

'desc' => __('左上角的标题文字',

'id' => 'today_in_history_title',

'std' => __('历史上的今天',

'type' => 'text');

?

$options[] = array(

'name' => __('历史上的今天-显示文章数',

'desc' => __('纯数字,显示列表文章数量。不明白?<a href="https://blog.quietguoguo.com">点击这里</a> 进行留言。',

'id' => 'today_in_history_num',

'std' => 5,

'class' => 'mini',

'type' => 'text');

?

?>

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

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读