如何修改网站内容(本文将教你如何使用SQL语句来操作你的数据库 )
优采云 发布时间: 2021-12-30 09:11如何修改网站内容(本文将教你如何使用SQL语句来操作你的数据库
)
您是否遇到过以下情况:
所有这些都涉及到一个关键词:批量修改。如果你在WordPress后台手动一一修改文章内容,相信会让你抓狂。对于一些拥有数千篇文章的博客来说,完成任务几乎是不可能的。本文将教你如何使用SQL语句来操作你的数据库,实现数据的批量修改。
如果你没有学习过数据库相关知识,你当然不知道什么是SQL,但是本文所涉及的内容不需要你了解数据库知识,也不需要你精通SQL语句的编写。您可以直接使用本文。下面我们将分别介绍每条SQL语句的功能。所有语句都使用默认的 wp_ 表前缀。如果您的不是,请自行更改。
在开始之前,先介绍一下如何执行SQL语句和进行批量操作。现在一般空间都是使用phpmyadmin来管理数据库,这里以phpmyadmin为例介绍如何执行SQL语句:
1、批量编辑文章内容:
如果要替换之前写过的所有文章中的部分内容,比如更改博客名称、更改博客网址、更改文章图片链接等,可以使用以下 SQL 语句:
UPDATE wp_posts
SET post_content = replace( post_content, '爱找主题', '爱找主题网站' );
这句话的作用是将所有文章中“搜索主题”的词组全部替换为“搜索主题”的网站。您可以根据需要进行一些更改。因为文章内容在数据库中是以HTML代码的形式存储的,所以上面的SQL语句也可以代替HTML代码。
如果你只是想改变文章插图的链接而不影响其他链接,可以使用下面的SQL语句,把src="全部换成src="
UPDATE wp_posts
SET post_content =
REPLACE (post_content, 'src="oldurl.com', 'src="newurl.com');
如果作为图片附件上传,需要更改图片附件的GUID
UPDATE wp_posts
SET guid = REPLACE (guid, 'oldsiteurl.com', 'newsiteurl.com')
WHERE post_type = 'attachment';
2、批量编辑文章摘要:
文章摘要是您在WordPress后台编辑文章时在“摘要”框中输入的内容。如果要批量更改文章摘要,可以使用以下语句:
UPDATE wp_posts
SET post_excerpt = replace( post_excerpt, '爱找主题', '爱找主题网站' );
这句话的作用是用主题网站替换文章摘要中的所有单词。
3、批量编辑文章作者
假设你的博客有两个注册用户,张三和李四,你想把张三的所有文章都放在李四的名下。这个时候你应该怎么做?您可以执行以下语句:
UPDATE wp_posts
SET post_author = 李四用户id
WHERE post_author = 张三用户id;
如何获取李斯的用户id和张三的用户id?您可以执行以下 SQL 语句:
SELECT ID, user_nicename, display_name FROM wp_users;
此时,将列出您博客上所有注册用户的 ID、昵称和公开显示的名称。现在可以找到对应用户的ID,如下图,zhangsan的ID为2,lisi的ID为5:
你的 SQL 可以这样写:
UPDATE wp_posts
SET post_author = 5
WHERE post_author = 2;
4、文章评论者网址批量修改
假设您的博客有一位非常忠实的读者,他在您的博客文章上留下了许多有用的评论。同时,他的评论填写在客人网站的网址中,但有一天他的博客域名变了,他在他的消息中要求你更新网站网址,你怎么办?手动帮他一一改,不太现实。您可以使用以下 SQL 语句:
UPDATE wp_comments
SET comment_author_url =
REPLACE( comment_author_url, 'oldurl.com', 'newurl.com' )
上面这句话会把评论者的旧网站链接全部改成新网站
5、关闭所有文章的pingback功能:
启用pingback功能可以在有人引用您的文章链接时向您发送通知,但此功能似乎对我们的文章没有太大帮助,那么为什么不禁用pingback呢?在WordPress后台-设置-讨论中,取消选中“从外部博客接收报价(pingbacks和trackbacks)”,这样以后的文章就不会启用pingback,但是这个选项对以前发表的文章不起作用。还是需要用到SQL:
UPDATE wp_posts
SET ping_status = 'closed';
6、删除文章的所有修改:
一般情况下,文章的修改版对大多数人来说没有多大意义,修改的次数会随着修改文章的次数而不断增加,这会提高数据库的查询速度,也就是不是什么好事。网上有很多教你如何禁止修改的文章,也有很多删除文章修改的插件。你可以自己搜索一下。这里教大家如何使用SQL语句删除已经生成的文章的所有修订数据:
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';