正文:
wordpress博客使用时间长了之后,数据库中会积累很多无用的数据。为了减小数据库的负担并提高网站的访问速度,我们可以通过代码来删除这些数据。以前的代码使用mysql_query 方式,但不支持 php7+版本。下面的代码经过简单修改,可以支持 php7.3 版本。将以下代码保存为 clean.php 文件(编码格式为 UTF-8 无 BOM),然后上传到网站目录中,打开该文件即可完成清理操作。清理完成后,页面会显示“清理完成!”的提示。为了避免意外情况,请在清理之前先备份数据。
代码如下:
<!--?php
//wordpress 数据库优化脚本
$blog=mysqli_connect("localhost","username","password","database"); //依次是数据库主机、数据库用户名、数据库密码、数据库名,同 wp-config.php
mysqli_query($blog , "set names utf8");//设置数据库编码 utf8
mysqli_query($blog,'DELETE FROM wp_posts WHERE post_type = "revision"');//删除文章修订版本
mysqli_query($blog,'DELETE FROM wp_commentmeta WHERE meta_key LIKE "%trash%"');
mysqli_query($blog,'DELETE FROM wp_comments WHERE comment_approved = "trash"');//删除所有垃圾评论
mysqli_query($blog,'DELETE FROM wp_options WHERE option_name REGEXP "_transient_"');//
//清理日志字段类 wp_postmeta
mysqli_query($blog,'DELETE FROM wp_postmeta WHERE meta_key = ‘wp_old_slug’');//wordpress 文章更换别名时,会在 postmeta 表中留存一个旧的别名信息,如果你的主题使用不到这个字段,可以考虑删除
mysqli_query($blog,'DELETE FROM wp_postmeta WHERE meta_key = "_edit_lock"');
mysqli_query($blog,'DELETE FROM wp_postmeta WHERE meta_key = "_edit_last"');
//WordPress 后台上传图片或附件会在 wp_postmeta 中生成 _wp_attached_file 和 _wp_attachment_metadata 两个项,wp_posts 也会记录附件的信息。如果使用 FTP 工具上传文件,表中就不会有这些信息,如果你不需要管理你的多媒体文件可以使用下面的两句进行清理。
mysqli_query($blog,'DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attached_file’');
mysqli_query($blog,'DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attachment_metadata’');
mysqli_query($blog,"delete from wp_posts where (post_status='auto-draft' or post_status='inherit') and post_type='post'");
mysqli_close($blog);
echo '清理完成!';</code-->
转载请注明:汇站网 » 优化 wordpress 数据库清理的代码,使其更加精简高效