戊辰人博客

青,取之于蓝而青于蓝;冰,水为之而寒于水。

WordPress上传图片或附件自动重命名的实现方法

日期:2015年11月20日 作者: 分类:编程 阅读:1,068

在使用wordpress发布文章时,经常用到的一个功能就是添加媒体,比如在文章中添加图片或其他格式的附件。那么,问题来了,wordpress在英语环境中使用,文件名一般都是英文,但是对于中文用户来说,经常会碰到文件名是中文的情况。尽管直接上传一个中文名的文件到网站上是没有问题的,但是我们更希望这个文件能在我们上传的时候自动变成英文或数字。

本文将会介绍两个格式的文件命名方法:根据上传的时间命名,如20140101112233.xxx(表示2014年1月1日11时22分33秒上传的,xxx表示文件类型后缀);另一种是将文件名通过md5转码后得到的一个32位字符串,如21232f297a57a5a743894a0e4a801fc3.xxx(原始文件名为admin.xxx)。在自定义的wordpress主题或官方自带的主题中都可以使用这个方法来实现上传文件重命名。

原理

wordpress之所以强大就是因为它给开发者提供了一系列API,使其变得非常灵活。wordpress有一个Filter Functions(过滤器函数):add_filter,使用这个函数来操作wp_handle_upload_prefilter就能实现重命名的功能。

wp_handle_upload_prefilter可以参看wordpress官方文档的说明:

根据上传时间重命名文件

通常情况下,我们每次上传文件的时间都是不同的,即使是批量上传的情况下,也几乎不会出现同一时刻上传了多张图片文件的情况。所以这个方法几乎不会出现重名的文件。

这里需要用到php中的date()函数,完整的代码如下:

add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
	$info = pathinfo($file['name']);
	$ext = $info['extension'];
	$filedate = date('YmdHis').rand(10,99);//为了避免时间重复,再加一段2位的随机数
	$file['name'] = $filedate.'.'.$ext;
    return $file;
}

阅读全文…

Wordpress 4.2/4.3博客头像不显示的解决方案

日期:2015年4月26日 作者: 分类:编程 阅读:595

之前写过Wordpress 4.1博客头像不显示的解决方案,昨天更新到WordPress 4.2版本后(经测试4.3.x也通用),发现头像又不显示了,再按照4.1的方法也找到到修改的代码了,估计是将gravatar.com链接的代码合并更新了,在经过对代码的一番排查后,在wordpress根目录下的wp-includes/link-template.php找到与gravatar相关的代码,在第3604行有如下代码:

阅读全文…

WordPress在Nginx下启用mod_rewrite功能

日期:2015年4月21日 作者: 分类:运维 阅读:544

如果wordpress部署在Nginx下,在使用wp-super-cache时,若使用mod_rewrite方式(最快的缓存方式)进行缓存时,插件会提示没有安装mod_rewrite模块,那是因为wp-super-cache是设计为对Apache最友好的,它是在检查Apache的mod_rewrite模块是否安装。

其实Nginx默认支持mod_rewrite规则的,我们只需要在wordpress主题中增加一句代码告诉插件已经启用mod_rewrite,插件就可以正常工作了。

具体方法是,在自己的主题模板下的function.php文件中增加如下代码:

阅读全文…

解决WordPress安装All in One SEO Pack后站点标题重复的问题

日期:2015年4月20日 作者: 分类:编程 阅读:691

发表这篇博文让我再次吐槽一下:娱乐问题找百度,技术问题找Google!

言归正传,在给wordpress博客系统安装了All in One SEO Pack插件并配置启用以后,出现一个问题,除了首页的标题信息正常显示,其他内容页面的标题处会如下显示:

文章标题+博客标题 | 博客标题
%post_title%%blog_title% | %blog_title%

也就是说博客标题多出了一次,第一次的博客标题是个bug。

阅读全文…

Wordpress 4.1博客头像不显示的解决方案

日期:2015年3月27日 作者: 分类:编程 阅读:828

个人博客上使用wordpress的用户比较多,最近安装wordpress 4.1.1,发现的头像不显示了,经过排查和网友总结,发现这个问题的原因是由于Gravatar头像(全球通用头像服务)被墙了。跟google字体(发现新版本的wordpress已经没有使用原先的google字体服务了,所以字体问题不存在了)被墙一样,这种情况会拖慢wordpress用户网站的加载速度。

Wordpress

经过测试,完美解决头像被墙问题,大家可以放心使用,且不用担心速度问题。

阅读全文…