优化WordPress中文章与评论的时间显示,wordpress评论
优化WordPress中文章与评论的时间显示,wordpress评论
很多博客都喜欢用 评论发表于 “XXX 分钟 之前”、文章发表于 “XXX 分钟 之前”来显示文章评论的时间,改善的时间显示方式不仅能很直观的告诉读者这篇文章或评论发表距今已有多长时间,更能增强评论回复的时间感,哥很喜欢,因为前一阵子压在手里的东西太多了,工作日白天又苦于不能上网,所以主题的样式及功能部分一点一点的写拖了好长时间,最近这阵子刚好轮到折腾评论了,所以就逐步参照网上流行的样式一点一点的修改起来自己的评论样式和功能。
So…..
Go…..
交道麻袋…..评论日期和文章日期调用函数不同,下面以评论日期为例,文章日期请自行调整。
改善的时间显示方式的原理
很简单,就是通过 WordPress 的一个内置的函数处理现在的时间和文章、评论发表的时间差,显示距今有X分钟、X小时、X天。
这个函数就是 human_time_diff ()
用法:
<?php human_time_diff( $from, $to ) ;?>
说明:
判断两个时间标记的差异。
以人类可阅读的格式,如“1小时”、“5分钟”、“两天”,返回$from和$to 两个时间变量的时间差。
从英文上也很好理解:from 到 to 嘛。(这句是很废吧,哈哈。)
雏形版改善实现
//将你的评论时间显示的函数改成如下就可以了 <?php echo human_time_diff( get_comment_time('U') , current_time('timestamp')) ;?>
所有的日期都计算时间差,很暴力吧?
初级版的实现办法
简单的加一个判断,如果评论时间没有超过一天则显示XX小时之前,如果超过一天则显示原始日期。
这样比较人性化吧?总不能让读者总掰着指头算38天之前是什么日子吧?哈哈!
代码:
<?php //计算是否超过一天 注:86400是一天的总共的秒数 60秒X60分X24小时=86400秒 //如果觉得一天不够的话,请自行计算填上。 if (current_time('timestamp') - get_comment_time('U') < 86400 ) //一天之内显示的东西 {$cmt_time = human_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';} //超过一天这么显示 else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);}; ;?> //将你的评论时间显示的函数改成如下就可以了 <?php echo $cmt_time ;?>
增强版
那么我们能不能再增强一下呢?
为什么增强?
好吧,因为我这个人比较较真,觉得中文显示日期不好看,影响到我的排版,喜欢英文显示日期,而中文版的 WordPress 汉化的真的是没有死角(汉化的真仔细),如果我们直接用 human_time_diff 函数输出的话,中文版的 WordPress 会将结果全部汉化显示XX小时XX天之前,这样很有可能会影响我们的排版,而且这个 human_time_diff 函数里既没有留钩子,也没有预留一个不汉化的参数,所以我们想要显示英文的话,只有两个办法:
直接修改 human_time_diff 函数,让汉化失效,这样做太暴力,而且以后升级了还要再进去改,伦家不喜欢。
重写一个自己的 human_time_diff 函数,绕过汉化。
function.php 里面强力插入如下代码:
//原函数的 day hour min 都是小写的, //我把这三个词的首写字母改成大写的,即Day Hour Min 就可以避开汉化了,你懂? if ( ! function_exists( 'xz_time_diff' ) ) : function xz_time_diff( $from, $to = '' ) { if ( empty($to) ) $to = time(); $diff = (int) abs($to - $from); if ($diff <= 3600) { $mins = round($diff / 60); if ($mins <= 1) { $mins = 1; } /* translators: min=minute */ $since = sprintf(_n('%s Min', '%s Mins', $mins), $mins); } else if (($diff <= 86400) && ($diff > 3600)) { $hours = round($diff / 3600); if ($hours <= 1) { $hours = 1; } $since = sprintf(_n('%s Hour', '%s Hours', $hours), $hours); } elseif ($diff >= 86400) { $days = round($diff / 86400); if ($days <= 1) { $days = 1; } $since = sprintf(_n('%s Day', '%s Days', $days), $days); } return $since; }endif;
时间判断代码改为如下:
<?php //只是把计算日期差异的函数名变了而已,其他同上。 if (current_time('timestamp') - get_comment_time('U') < 86400 ) {$cmt_time = xz_time_diff( get_comment_time('U') , current_time('timestamp') ) . '-ago';} else{$cmt_time = get_comment_date( 'Y/n/j' ).' - '.get_comment_time('','',false);}; ;?> //将你的评论时间显示的函数改成如下就可以了 <?php echo $cmt_time ;?>
显示评论、文章相对时间
根据上面的版本、下面的这个应该算是增强改进版吧,因为要达到效果还是需要在主题里添加代码,所以还没到终极版,哈哈。
函数代码如下:
相对时间函数
if ( ! function_exists( 'xz_time' ) ) : /** * 显示文章、评论相对时间的封装函数. *作者:XiangZi http://PangBu.com/ * @param $type 类型字符串 'cmt'或'art',用于定义显示的是评论时间还是文章时间。 * @param $ago_time 数字类型 用于定义显示相对时间的时间限制 默认为86400秒即一天。 * @param $after 字符串型 显示在相对时间之后的文字,默认为 ' - ago' * @param $late 字符串型 超过时间限制后显示的项目,默认为 get_the_time('Y/n/j - H:i')或get_comment_time('Y/n/j - H:i') * @return 返回字符串(相对时间或绝对时间) */ function xz_time ( $type = 'art', $ago_time = 86400 ,$after = ' - ago' , $late = '' ) { if ( $type === 'cmt' ){ $diff = (int) abs( get_comment_time('U') - current_time('timestamp')); if ( (!$late) || $late ==''){ $late = get_comment_time('Y/n/j - H:i');}; } if ( $type === 'art' ){ $diff = (int) abs( get_the_time('U') - current_time('timestamp')); if ( (!$late) || $late ==''){$late = get_the_time('Y/n/j - H:i');}; } if ( $diff <= 3600 ) { $mins = round($diff / 60); if ($mins <= 1) { $mins = 1; } /* translators: min=minute */ $since = sprintf(_n('%s Min', '%s Mins', $mins), $mins); } else if (($diff <= 86400) && ($diff > 3600)) { $hours = round($diff / 3600); if ($hours <= 1) { $hours = 1; } $since = sprintf(_n('%s Hour', '%s Hours', $hours), $hours); } elseif ($diff >= 86400) { $days = round($diff / 86400); if ($days <= 1) { $days = 1; } $since = sprintf(_n('%s Day', '%s Days', $days), $days); }; $since .= $after ; return $diff < $ago_time ? $since : $late ; }endif;
使用方法
将上述代码插入到你主题的function.php文件中
然后在你想显示相对时间的地方调用该函数即可。
函数最少输入设定一个参数 即$type 类型字符串 ‘cmt'(评论时间)或'art'(文章时间)
示例:
//最简单的调用 echo xz_time('cmt'); //一天内的输出结果: 3 Hours-ago //一天后的输出结果: 2015/12/26 - 20:01 //调用时长为2天内的相对时间,之前时间显示默认时间 echo xz_time('cmt',172800); //2天内的输出结果: 3 Hours-ago //2天后的输出结果: 2015/12/26 - 20:01 //调用时长为2天内的相对时间,相对时间之后显示 '之前的评论' echo xz_time('cmt',172800,'之前的评论'); //2天内的输出结果: 3 Hours 之前的评论 //2天后的输出结果: 2015/12/26 - 20:01 //调用时长为2天内的相对时间,之前时间显示为 年-月-日 echo xz_time('cmt',172800,'之前的评论',get_comment_time('Y-n-j')); //2天内的输出结果: 3 Hours 之前的评论 //2天后的输出结果: 2015/12/26
您可能感兴趣的文章:
- WordPress中利用AJAX技术进行评论提交的实现示例
- WordPress中利用AJAX异步获取评论用户头像的方法
- 详解WordPress中调用评论模板和循环输出评论的PHP函数
- WordPress中限制非管理员用户在文章后只能评论一次
- 讲解WordPress中用于获取评论模板和搜索表单的PHP函数
- 解决WordPress使用CDN后博文无法评论的错误
- 利用jQuery实现WordPress中@的ID悬浮显示评论内容
- 编写PHP脚本来实现WordPress中评论分页的功能
- 修改PHP脚本使WordPress拦截垃圾评论的方法示例
- 在WordPress中实现评论头像的自定义默认和延迟加载
- WordPress中对访客评论功能的一些优化方法
- WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP와 Flutter는 모바일 개발에 널리 사용되는 기술입니다. Flutter는 크로스 플랫폼 기능, 성능 및 사용자 인터페이스가 뛰어나며 고성능, 크로스 플랫폼 및 맞춤형 UI가 필요한 애플리케이션에 적합합니다. PHP는 성능이 낮고 크로스 플랫폼이 아닌 서버 측 애플리케이션에 적합합니다.

WordPress 게시물은 /wp-content/uploads 폴더에 저장됩니다. 이 폴더는 하위 폴더를 사용하여 연도, 월, 기사 ID별로 정리된 기사를 포함하여 다양한 유형의 업로드를 분류합니다. 기사 파일은 일반 텍스트 형식(.txt)으로 저장되며 파일 이름에는 일반적으로 ID와 제목이 포함됩니다.

WordPress 템플릿 파일은 /wp-content/themes/[테마 이름]/ 디렉터리에 있습니다. 헤더(header.php), 바닥글(footer.php), 기본 템플릿(index.php), 단일 기사(single.php), 페이지(page.php)를 포함하여 웹사이트의 모양과 기능을 결정하는 데 사용됩니다. , 아카이브(archive.php), 카테고리(category.php), 태그(tag.php), 검색(search.php) 및 404 오류 페이지(404.php). 이러한 파일을 편집하고 수정하면 WordPress 웹사이트의 모양을 사용자 정의할 수 있습니다.

가장 안정적인 WordPress 버전은 최신 보안 패치, 성능 향상, 새로운 기능 및 개선 사항이 포함된 최신 버전입니다. 최신 버전으로 업데이트하려면 WordPress 대시보드에 로그인하고 업데이트 페이지로 이동하여 지금 업데이트를 클릭하세요.

WordPress에는 등록이 필요합니다. 우리나라의 '인터넷 보안 관리 대책'에 따르면, 국내에서 인터넷 정보 서비스를 제공하는 웹사이트는 워드프레스(WordPress)를 포함해 해당 지자체 인터넷 정보 관리국에 등록해야 합니다. 등록 프로세스에는 서비스 공급자 선택, 정보 준비, 신청서 제출, 검토 및 게시, 등록 번호 획득 등의 단계가 포함됩니다. 제출의 이점에는 법적 준수, 신뢰성 향상, 액세스 요구 사항 충족, 정상적인 액세스 보장 등이 포함됩니다. 제출 정보는 사실이고 유효해야 하며, 제출 후 정기적으로 업데이트되어야 합니다.

WordPress 테마 템플릿을 삭제하려면 먼저 대시보드에 로그인한 다음 모양 > 테마 편집기로 이동하여 삭제할 테마를 선택하고 삭제를 클릭한 후 확인하고 선택적으로 새 테마를 활성화하세요.

디지털 시대에 들어 셀프미디어 산업은 급속도로 성장하여 사람들이 정보를 얻고 의견을 공유하는 중요한 채널이 되었습니다. 셀프미디어 계정은 셀프미디어 산업의 근간이 되는 서비스로, 셀프미디어 계정의 개념과 운영방법에 대해 많은 사람들이 관심을 가지고 있습니다. 본 글에서는 셀프미디어 계정에 대한 논의를 시작으로 셀프미디어 계정의 정의와 셀프미디어 계정의 트래픽을 늘리는 방법을 자세히 소개하겠습니다. 1. 셀프미디어 계정이란 무엇인가요? We-media 계정은 개인이나 기관이 콘텐츠를 제작하고 게시하여 사용자와 상호 작용하고 정보를 전파하는 주요 셀프 미디어 플랫폼의 계정을 의미합니다. We-media 계정은 생활, 엔터테인먼트, 기술, 교육 등 다양한 분야를 다루는 기사, 사진, 동영상 등 다양한 형태의 콘텐츠를 게시할 수 있습니다. 셀프 미디어 계정 운영자는 정보 전파, 브랜드 홍보 및 기타 목표를 달성하기 위해 고품질 콘텐츠를 통해 팬을 유치합니다.

WordPress는 기사 데이터베이스로 MySQL을 사용하며 주요 기능에는 기사, 댓글, 사용자 및 웹사이트 구성 데이터 저장이 포함됩니다. 데이터 테이블에는 wp_posts(기사), wp_postmeta(메타데이터), wp_comments(댓글), wp_commentmeta(댓글 메타데이터), wp_users(사용자)가 포함됩니다. 데이터베이스는 phpMyAdmin이나 명령줄을 통해 접근 및 관리할 수 있으며, 데이터 손실을 방지하려면 데이터베이스를 정기적으로 백업하는 것이 중요합니다.
