B2主题增加文章最后更新时间-首页
需要实现文章meta需要修改几个文件,修改文件前请备份先,备份总不会错
首先找到主题文件b2/Modules/Common/Post.PHP
大致348
添加下面代码
然后找到主题文件b2/Modules/Templates/Modules/Posts.php
搜索 $date = $hove_date ? ‘<span>’.$v[‘date’].'</span>
’ :
替换成 $date = $hove_date ? ‘<span>’.$v[‘date’].'</span>’ .'<span>
修正于’.$v[‘updatetime’].'</span>
’ 即可
WordPress 文章日期显示方式“xx以前”
WordPress 普通的调用日期代码为:
<?php get_the_time('Y-m-d G:i:s');?>
显示格式为:2030年8月8日 21:16:15
但在有些地方,我们做网站时,要显示的日期格式为“xx以前”,如下图:
要显示“xx以前”格式,可以使用下面的代码来实现。
第一步:将以下的代码粘贴到functions.php函数文件里;
- function time_ago( $type = 'commennt', $day = 7 ) {
- $d = $type == 'post' ? 'get_post_time' : 'get_comment_time';
- if (time() - $d('U') > 60*60*24*$day) return;
- echo ' (', human_time_diff($d('U'), strtotime(current_time('mysql', 0))), '前)';
- }
- function timeago( $ptime ) {
- $ptime = strtotime($ptime);
- $etime = time() - $ptime;
- if($etime < 1) return '刚刚';
- $interval = array (
- 12 * 30 * 24 * 60 * 60 => '年前 ('.date('Y-m-d', $ptime).')',
- 30 * 24 * 60 * 60 => '个月前 ('.date('m-d', $ptime).')',
- 7 * 24 * 60 * 60 => '周前 ('.date('m-d', $ptime).')',
- 24 * 60 * 60 => '天前',
- 60 * 60 => '小时前',
- 60 => '分钟前',
- 1 => '秒前'
- );
- foreach ($interval as $secs => $str) {
- $d = $etime / $secs;
- if ($d >= 1) {
- $r = round($d);
- return $r . $str;
- }
- };
- }
第二步:使用以下的代码来调用日期。
- <?php echo timeago( get_gmt_from_date(get_the_time('Y-m-d G:i:s')) )?>
wordpress添加文章最后更新时间并显示某天前
有些文件具有时效性,文章添加一个最后更新时间,提示文章最后更新时间。
没有修改或者当天修改过文章不显示,其他时间修改文章内容就显示提示内容。
以上代码添加在single.php
文件对应位置,文章开头或者文章结尾根据自己需要添加。
若要美化提示框样式,代码如下:
- $custom_content .= '<p style="font-size: 15px;padding: 10px 10px;background: #f9f9f9;margin-top: 10px;text-align:center;margin-bottom: 20px;">本文最后更新于<code>'. $updated_date . '</code>,若有错误或已失效,请在下方留言反馈</p>';
实现某秒、某分钟、某小时、某天、某周前、某个月前、某年前更新。如本站
以下代码放进functions.php
文件内:
wordpress <?php the_time() ?>,WordPress the_time函数时间格式汇总
WordPress中输出日期、时间可以用: ?php the_time('Y年m月d日 H:i'); ? 。 让我一起看一下WordPress函数 the_time() 里面参数的具体含义。 日期(年-月-日)的含义: ?php the_time('Y-m-j'); ? 输出:2007-02-6 ?php the_time('y-n-j');? ? 输出:07-2-6
WordPress中输出日期、时间可以用:。
让我一起看一下WordPress函数the_time()里面参数的具体含义。
日期(年-月-日)的含义:
输出:2007-02-6
输出:07-2-6
大写Y表示年四位数字,而小写y表示年的两位数字;
小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。
输出:2007-Feb-6
输出:2007-02-06
大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);
没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。
输出:2007-February-6th
大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)
大写S表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。
小结:
表示年可以用大写的Y和小写y;
表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);
表示日可以用小写d和小写j,大写S表示日期的后缀。
下面主要说一下时间的参数的含义(时:分:秒):
默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。
输出:5:56:57 am
输出:05:56:57 AM
小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。
输出:8:02:26
输出:08:02:26
大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数
WordPress时间格式为几分钟之前几小时之前
我们在很多网站和论坛都会看到此文章或评论发布于几分钟前、几小时前、几天前,这样给人感觉非常好。今天在此就将几种实现方法分享给大家。
将文章发布时间改为这种形式
WordPress 本身调用时间的函数 the_time() 只能直接调用时间,通过他的 filter,我们可以让他显示为比较科学的几天前格式。
当然,具体的时间组成格式可参考下面这篇文章:
将下边的代码丢到 function.php 的最后一个 ?> 前即可。
- function Bing_filter_time(){
- global $post ;
- $to = time();
- $from = get_the_time('U') ;
- $diff = (int) abs($to - $from);
- if ($diff <= 3600) {
- $mins = round($diff / 60);
- if ($mins <= 1) {
- $mins = 1;
- }
- $time = sprintf(_n('%s 分钟', '%s 分钟', $mins), $mins) . __( '前' , 'Bing' );
- }
- else if (($diff <= 86400) && ($diff > 3600)) {
- $hours = round($diff / 3600);
- if ($hours <= 1) {
- $hours = 1;
- }
- $time = sprintf(_n('%s 小时', '%s 小时', $hours), $hours) . __( '前' , 'Bing' );
- }
- elseif ($diff >= 86400) {
- $days = round($diff / 86400);
- if ($days <= 1) {
- $days = 1;
- $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
- }
- elseif( $days > 29){
- $time = get_the_time(get_option('date_format'));
- }
- else{
- $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
- }
- }
- return $time;
- }
- add_filter('the_time','Bing_filter_time');
将文章和评论发布时间都改为这种形式
方法一
首先,在我们所使用主题的 functions.php 文件最后一个?>前中加入以下代码:改自,文章日期时间显示效果见本站文章页。
- function timeago( $ptime ) {
- date_default_timezone_set ('ETC/GMT');
- $ptime = strtotime($ptime);
- $etime = time() - $ptime;
- if($etime < 1) return '刚刚';
- $interval = array (
- 12 * 30 * 24 * 60 * 60 => '年前 ('.date('Y-m-d', $ptime).')',
- 30 * 24 * 60 * 60 => '个月前 ('.date('m-d', $ptime).')',
- 7 * 24 * 60 * 60 => '周前 ('.date('m-d', $ptime).')',
- 24 * 60 * 60 => '天前',
- 60 * 60 => '小时前',
- 60 => '分钟前',
- 1 => '秒前'
- );
- foreach ($interval as $secs => $str) {
- $d = $etime / $secs;
- if ($d >= 1) {
- $r = round($d);
- return $r . $str;
- }
- };
- }
然后,在需要显示时间的地方即可。
文章发布时间格式修改使用方法:
把原先显示时间的代码(如:)改为以下代码即可:
- <?php echo timeago(get_gmt_from_date(get_the_time('Y-m-d G:i:s'))); ?>
评论发布时间格式修改使用方法:
把原先显示时间的代码(如:)改为以下代码即可:
|
<?php echo timeago(get_gmt_from_date(get_comment_date('Y-m-d G:i:s'))); ?>
|
方法二
本方法可以让 30 天内发布的文章显示为几天前,而过了 30 天即显示为正常的标准格式日期。评论日期时间显示效果参见本站评论。
首先, functions.php 中加入以下代码:
- function timeago($time) {
- date_default_timezone_set ('ETC/GMT');
- $time = strtotime($time);
- $difference = time() - $time;
- switch ($difference) {
- case $difference <= '1' :
- $msg = '刚刚';
- break;
- case $difference > '1' && $difference <= '60' :
- $msg = floor($difference) . '秒前';
- break;
- case $difference > '60' && $difference <= '3600' :
- $msg = floor($difference / 60) . '分钟前';
- break;
- case $difference > '3600' && $difference <= '86400' :
- $msg = floor($difference / 3600) . '小时前';
- break;
- case $difference > '86400' && $difference <= '2592000' :
- $msg = floor($difference / 86400) . '天前';
- break;
- case $difference > '2592000':
- $msg = ''.date('Y-m-d G:i:s',$time).'';
- break;
- }
- return $msg;
- }
|
文章和评论发布时间格式修改使用方法参见方法一。