如何将WordPress发布的图片上加上时间戳,从而防止图片重名呢?首先,简单地整理一下WordPress后台上传图片的流程,就是WordPress使用MEDIA_HANDLE_UPLOAD函数来处理上传图片的整个过程。步骤如下:  1.使用WP_HANDAND_UPLPAD将图片上载到WordPress上传目录。…

  如何将WordPress发布的图片上加上时间戳,从而防止图片重名呢?首先,简单地整理一下WordPress后台上传图片的流程,就是WordPress使用MEDIA_HANDLE_UPLOAD函数来处理上传图片的整个过程。步骤如下:

如何将WordPress发布的图片上加上时间戳,从而防止图片重名呢?

  1.使用WP_HANDAND_UPLPAD将图片上载到WordPress上传目录。

  2.然后整理数据并将其提交给WP_INSERT_ATTACHMENT。

  3.WP_INSERT_ATTACHMENT函数调用WP_INSERT_POST并将其插入WordPress的POST数据库表中。

  4.WP_INSERT_POST使用WP_UNIQUE_POST_SLUG函数在将图片信息插入WordPress的POST数据库表之前设置唯一的POST_SLUG。

  WP_UNIQUE_POST_SLUG将转到数据库以检查图片的名称是否已经可用,当它可用时,它会重命名图片的名称,例如1.jPG。它将被重命名为1-2.jpg,如果1-2.jpg名称也可用,则将其重命名为1-3.jpg,以此类推,直到名称是唯一的。这将导致数百个sql请求。

  我们不能让用户坚持不上传像1.jpg这样太普通的图片名称,但是为了防止大量的SQL查询,我们应该从源头上解决这个问题,并更改图片的名称。

  添加以下代码

  add_filter(‘wp_handle_upload_prefilter’, function($file) { if(strlen($file[‘name’])<=7){ $file[‘name’] = time().’-‘.$file[‘name’]; } return $file; });

  这段代码是,如果图片的名称(包括.jpg后缀名称)超过7个字符,则在图片的名称上添加一个时间戳,这样重复检查的概率就可以被认为消失了。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。