Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WordPress 数据库维护时常用到 12 个 SQL 语句

WordPress 数据库维护时常用到 12 个 SQL 语句

作者头像
Denis
发布于 2023-04-15 07:07:05
发布于 2023-04-15 07:07:05
56100
代码可运行
举报
文章被收录于专栏:WordPress果酱WordPress果酱
运行总次数:0
代码可运行

虽然通过 WordPress 强大的插件库,你几乎可以干任何的事情,但是有时候需要快速修复一些特定的问题的时候,直接操作数据库可能反而是方便的方法,所以这篇文章就给大家介绍 WordPress 数据库维护时常用到 12 个 SQL 语句。

*注:下面假设 WordPress 数据库的表的前缀都是默认的“wp_”。

1. 直接在数据库中修改密码

密码忘记了是经常的事情,博客密码忘记了进不去,可以直接在数据库里面修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_users SET user_pass = MD5('PASSWORD') WHERE user_login = 'admin'

上面采用了 MySQLMD5() 函数讲密码转成 MD5 Hash。

2. 将日志从一个作者转移到另外一个

假如你的博客的某个作者离开了,或者你不想让“admin”作为作者名,想把日志的作者从一个改到另外一个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

*注:你需要知道两个作者的 user id。

3. 删除数据库中日志修订记录和其相关的 post_meta 数据

特别是针对多人博客的时候,日志修订功能很重要,但是日志修订功能也在数据库里面添加了很多的数据,假设你的博客只有 100 篇日志,每篇日志有 10 个日志修订,你的 posts 表中就会有超过 1000 条记录,严重的数据冗余

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE a,b,c FROM wp_posts a  LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision'

*注:上面的 SQL 将删除数据库中所有的日志修订记录和其相关的 meta 信息(自定义字段)。

当然你还可以:彻底屏蔽日志修订功能

4. 批量删除垃圾留言

如果你一段时间没有管理你的博客,刚好出去休假,没有办法上网,并且博客也没有装类似 Akismet 这类防垃圾留言插件,那么你回来的时候,你会发现博客后台有成千上万条垃圾留言需要你去审核。

这个时候,其实你只需要审核通过正常的留言,然后执行下面这条 SQL:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE FROM wp_comments WHERE comment_approved = '0';

5. 查找没用的标签

你可能创建一些 WordPress 标签之后,就没有再使用,你可以通过下面这条 SQL 找到它们,然后安全的删除他们。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * From wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id=wtt.term_id WHERE wtt.taxonomy='post_tag' AND wtt.count=0;

6. 查找和替换数据

对于熟悉 MySQL 数据库的开发者来说,replace() 这个 MySQL 函数都应该很熟悉,它可以让你指定一个字段,然后替换它里面的字符串,一旦执行,所有这个字段里面的字符串都会被替换。对于 WordPress 博客来说,这个 SQL 则非常实用,它可以让你批量修改某些输入错误,或者某个邮件地址等等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE table_name SET field_name = replace( field_name, 'string_to_find', 'string_to_replace' ) ;

替换日志内容中字符串:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_posts SET post_content = replace( post_content, 'string_to_find', 'string_to_replace' ) ;

将某个留言者地址替换下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://oldurl.com', 'http://newurl.com' );

留言者邮箱:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_comments SET comment_author_email = REPLACE( comment_author_email, 'old-email@address.com', 'new-email@address.com' );

还有一个 WordPress 插件 Search & Replace 还提供一个后台让你更加容易进行批量替换。

7. 获取所有留言者的邮件地址

有时候你想做点不是那么好的事情,比如给所有留言者发下邮件,告诉他们你博客做了一些新的功能,或者写了一个很不错的文章,那么你干坏事情之前,首先要获取所有留言者的邮件地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT DISTINCT comment_author_email FROM wp_comments;

*注:上面的 DISTINCT 让你获取的邮件地址是唯一的,即使这个用户发过好几次留言,也不怕。

不过群发邮件这件事情个人建议还是不要这样做好。 🙂

8. 一次把所有插件都停了

网站出现问题了,需要一次把插件全部都先停了之后检测下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

9. 删除没用的标签

没用的标签当然要删除了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE a,b,c
FROM
	wp_terms AS a
	LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
	LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
WHERE (
	c.taxonomy = 'post_tag' AND
	c.count = 0
	);

*注:上面 SQL 除了删除所有没用的标签,还删除了所有标签分类模式信息以及和日志关联的关系。

10. 列出没用的 post meta

wp_postmeta 中的数据是由一些插件或者自定义字段生成的,他是对 wp_posts 表的一种无限的扩展,但是可能由于某种原因,日志被删除了,但是它的 meta 信息还存在 wp_postmeta 表中,下面这条 SQL 将这些没有关联日志的 meta 数据列出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL;

11. 关闭旧日志留言功能

厄,对于一些技术博客或者其他博客来说,一些旧日志的内容可能已经过时了,但是一些读者,还是对一些问题“纠缠不清”或者“喋喋不休”,怎么办,把留言关了就好了:

关闭留言:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish';

关闭Trackback:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
UPDATE wp_posts SET ping_status="closed" WHERE post_date < '2009-01-01' AND post_status = 'publish';

12. 删除所有 url 含有特定字符串的留言

一些留言者很烦,一次留几十个,其链接都指定到一些卖伟哥,起重机,SEO 的站点,烦人的很,一个一个删,又累,下面这条 SQL 可以来帮忙:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE from wp_comments WHERE comment_author_url LIKE "%viagra%" ;

简单总结

这些 SQL 语句是直接对数据库进行操作的,如果你不是那么懂数据库或者 SQL 语言,建议你不要这么做,如果你还是比较自信 SQL 操作,建议操作之前备份下数据库

你在维护 WordPress 有什么常用的 SQL ,欢迎留言补充。 🙂


本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
wordpress删除文章修订版本和自动草稿而残留的数据
下面介绍批量删除数据库中因WordPress文章修订版本、自动保存和自动草稿生成的大量占用数据库空间的冗余数据的3种方法:
半夜喝可乐
2024/09/30
2870
wordpress删除文章修订版本和自动草稿而残留的数据
WordPress 数据库探究 #1 -- 介绍
这个系列教程翻译自:A look inside the WordPress database。由于原文比较长,我把它分成一系列教程,今天第一篇是开篇介绍。
Denis
2023/04/13
4240
优化WordPress数据库只需6步 给网站提点速吧
WordPress的文章、评论等很多数据都是存放在数据库的,所以搭建wordpress网站的时间,网站的空间不需要多大,而数据库一定要充足,而在WordPress数据库中主要使用 wp_posts 表来存储日志,页面,附件,导航菜单等数据,根据使用的时间越来越长,堆积的数据越来越多,从而运行起来也越来越慢,那么我是十分有必要对 WordPress数据库来进行整体的优化下。
于飞云计算
2019/07/02
1.2K0
优化WordPress数据库只需6步 给网站提点速吧
优化 WordPress 数据库,提高 WordPress 速度
WordPress 的机制是主要使用 wp_posts 表来存储所有数据,包括日志,页面,附件,导航菜单等等,所以 WordPress 使用了一定时间之后,数据量一大还是有点慢,除了对 WordPress 进行全方面的优化之外,我们还可以对数据表进行减肥和优化,来提高 WordPress 的速度。
Denis
2023/04/15
1.3K0
WordPress数据库及各表结构
WordPress使用MySQL数据库。作为一个开发者,我们有必要掌握WordPress数据库的基本构造,并在自己的插件或主题中使用他们。
幻影龙王
2021/09/08
3.5K0
WordPress 数据库探究 #5 -- wp_comments
wp_comments 表保存你站点上所有的留言,包括所有通过验证的留言,等待审核的留言,垃圾留言和从 其他文章发送过来的 trackbacks 和 pingbacks。我想不需要我告诉你,你就能猜出这个数据表中大部分字段的意思,但是为了以防万一,我列出你可能关心的:
Denis
2023/04/13
3130
自己动手写 WordPress 插件 3:使用 API
上两篇讲解了如河窗体化 WordPress 插件,今天我们来点高级点, 🙂 如何使用 WordPress API 进行编写插件。其实我们在前面窗体化 WordPress 插件中已经部分涉及到这方面的知识。只是没有做详细的说明,所以认真看今天的内容也会对你以前的内容也会有所帮助。当然有什么问题,欢迎给我留言。 首先,什么是 WordPress 的 API? 在很早之前,我们需要添加一些新的功能,需要修改 WordPress 源代码,这是非常的郁闷,而现在有了 API (应用程序接口)之后,我们就能非常容易的添
Denis
2023/04/15
6710
WordPress 技巧:如何修改 WordPress 数据库前缀
我们知道 WordPress 的数据库表,可以设置前缀,默认是 wp_,很多同学也就默认用了 wp_,如果某种原因(比如提高安全性)要修改的 WordPress 数据的前缀,我们应该怎么做?
Denis
2023/04/15
1.4K0
WP常用SQL总结
wp\_commentmeta:存储评论的元数据 wp\_comments:存储评论 wp\_links:存储友情链接(Blogroll) wp\_options:存储WordPress系统选项和插件、主题配置 wp\_postmeta:存储文章(包括页面、上传文件、修订)的元数据 wp\_posts:存储文章(包括页面、上传文件、修订) wp\_terms:存储每个目录、标签 wp\_term\_relationships:存储每个文章、链接和对应分类的关系 wp\_term\_taxonomy:存储每个目录、标签所对应的分类 wp\_usermeta:存储用户的元数据 wp_users:存储用户信息  
老高的技术博客
2022/12/27
3890
自己动手写 WordPress 插件 1:开始
WordPress 之所以被广泛应用,一个很重要的原因,它很有众多的插件,但是怎么撰写 WordPress 插件呢?今天开始给大家写一些原创性的文章:自己动手写插件,今天是第一篇,算是一个开始,从一个最简单插件开始,刚刚写好的,厉害吧!
Denis
2023/04/15
2710
【说站】WordPress网站文章ID不连续如何解决?
对于WordPress网站文章ID不连续的问题困扰了我很久,今天将WordPress文章ID不连续的原因和具体解决办法做详细的说明。
很酷的站长
2022/11/24
6130
【说站】WordPress网站文章ID不连续如何解决?
修改 WordPress 数据库默认表前缀 wp_ 的方法
新手使用 wordpress 初期,数据库默认表前缀用的都是 wp_,从理论上来说对博客安全性不好。所以说我们正式搭建博客的时候都会把默认 wp_ 改为别的,比如 vps_ 等等只有你自己知道的,这样即使被人扫描也无法找到真正的表前缀,也就安全了很多。因为群友问到说一个服务器里面安装了两个 wordpress 博客,表前缀还都是一样的,所以想修改一下,所以魏艾斯博客就搜索整理了相关知识,部分内容参考了@boke122 导航的文章(原文地址 https://boke112.com/3758.html),表示感谢。
魏艾斯博客www.vpsss.net
2018/09/20
2K0
修改 WordPress 数据库默认表前缀 wp_ 的方法
Docker+Wordpress建站问题总结记录
问题产生原因: 如果更改为域名(例如未进行备案域名) 因域名无法直接访问, 模拟请求过程
零式的天空
2022/03/02
1.2K0
WordPress完美解决文章ID不连续问题
一、禁用文章修订版 所谓的文章修订版就是你每次修改一次文章,它都会自动帮你保存修改之前的文章版本,专业术语叫做版本控制,这样保证了在误修改的情况下可以还原之前的内容,这个在维基文档的维护方面是有很大帮助的,但是作为我们的小博客,似乎没多大用处,而且这个修订版在数据库中是占据一个ID的,这也是导致文章ID不连续的问题之一。要想禁用文章修订版,可以在 wp-config.php文件中添加:
超级小可爱
2023/02/20
1.7K0
wordpress站点更换域名了如何快速设置
有时我们的wordpress站点因为各种原因需要更换域名了,如何快速设置让网站直接用新域名而不受影响呢?比如旧域名是a.com,新域名为b.com,下面这段sql代码很有用
ytkah
2019/09/25
3.2K0
wordpress利用python直接操作数据库添加用户和商品评论
前言 利用python直接操作wordpress数据库,批量添加用户,评论等。 主要模块 模块 说明 flask web框架 faker 随机账号信息生成 pymysql 数据库操作 主函数 main.py # -*- coding: utf-8 -*- """主函数""" import argparse import sys from utils import * from server import * #程序入口 if __name__ == "__main__": parse
IT不难
2022/05/26
8270
wordpress利用python直接操作数据库添加用户和商品评论
无缝切换,Typecho切换到WordPress教程
在迁移之前,我们需要完成最重要的一个步骤就是将typecho的数据信息(包括文章,分类,评论,文章ID,以及一些介绍等等)导出,且要导出指定的WordPress可以识别的XWR格式。这里我们需要用到一款插件-ByeTyp。
huolong
2024/12/25
2411
无缝切换,Typecho切换到WordPress教程
个人常用记录
直接在【设置】->【地区和输入】处配置拼音输入法即可,不推荐使用 fcitx,配置后不显示,没配置成功。
Jokey
2021/04/15
5640
分享WordPress各种标签大全集合 以及如何调用
wordpress程序日渐成熟,开发者越来越多,各种模版层出不穷,但是想要做一个好的wordpress模版,前提不只是要掌握HTML5前端技术,还必须了解wordpress的各种标签如何调用才可以。今天全百科网就把整理的WordPress各种标签以及是如何调用分享给大家。
于飞云计算
2019/07/22
3.3K0
分享WordPress各种标签大全集合 以及如何调用
【说站】详细介绍WordPress数据库表wp_postmeta
wp_postmeta数据表是WordPress中存储文章的一些相关信息,如文章缩略图地址、缩略图长宽高和alt信息、文章所在分类的URL、文章自定义的Description和Keywords、文章访问次数等;
很酷的站长
2022/11/24
2K0
【说站】详细介绍WordPress数据库表wp_postmeta
相关推荐
wordpress删除文章修订版本和自动草稿而残留的数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验