다음과 같은 상황을 겪어보신 적 있으신가요?
- 블로그 도메인명이 바뀌고, 블로그 글 내용도 바뀌었습니다.
- 사용된 이미지 주소가 바뀌었습니다
- 글을 많이 썼는데, 다시보기 작성자 변경
- 악플 작성자의 댓글을 모두 삭제하고 싶다
- 특정 댓글 작성자의 모든 댓글 홈페이지 URL을 변경하고 싶다
- 모든 글에 대한 핑백을 비활성화하고 싶다
- 전체 댓글 기능을 비활성화하고 싶다 기사
이 모든 것에는 일괄 수정이라는 하나의 키워드가 포함됩니다. WordPress 백엔드에서 기사의 내용을 하나씩 수동으로 수정하면 수천 개의 기사가 있는 일부 블로그의 경우 작업을 완료하는 것이 거의 불가능할 것입니다. 이 기사에서는 SQL 문을 사용하여 데이터베이스를 작동하고 데이터를 일괄 수정하는 방법을 설명합니다.
데이터베이스 관련 지식을 배워본 적이 없다면 SQL이 무엇인지 절대 모르시겠지만, 이 글에서 다루는 내용은 데이터베이스 지식을 이해하도록 요구하는 것도 아니고, SQL문을 능숙하게 작성하도록 요구하는 것도 아닙니다. 이 기사를 직접 사용할 수 있습니다. 아래에서는 각 SQL 문의 기능을 섹션에 소개합니다. 모든 문은 기본 wp_ 테이블 접두사를 사용합니다. 그렇지 않은 경우 직접 변경하세요.
시작하기 전에, SQL 문을 실행하고 일괄 작업을 수행하는 방법을 다음과 같이 소개하겠습니다. 요즘 대부분의 공간에서는 phpmyadmin을 사용하여 데이터베이스를 관리합니다. 여기서는 phpmyadmin을 예로 들어 SQL 문 실행 방법을 소개합니다.
phpmyadmin 관리 페이지에 들어가서 블로그에 해당하는 데이터베이스를 입력하세요
메뉴 bar SQL 옵션이 있는데 클릭하세요
SQL 문 입력 상자가 나타나면 이제 그 안에 SQL 문을 입력할 수 있습니다
입력 후 Execute를 클릭하세요. 방금 입력한 내용이 실행됩니다.
SQL 문이 실행되었으며, 기사가 일괄 수정되었습니다. 이제 모든 기사가 변경되었는지 확인하세요.
마지막으로, SQL 문 아래 소개된 내용은 모두 제 블로그에 있습니다. 위에서 테스트해 보았으나, 그럼에도 불구하고 데이터베이스를 운영하기 전에 정기적으로 데이터베이스를 백업하는 것이 좋습니다.
SQL 명령 실행 창:
1. 일괄 수정 기사 내용 :
블로그 이름 변경, 블로그 URL 변경, 블로그 이름 변경 등 이전에 작성했던 모든 글에서 일부 내용을 교체하고 싶은 경우 기사 이미지 등에 대한 링크는 다음 SQL 문을 사용할 수 있습니다.
UPDATE wp_posts SET post_content = replace( post_content, '露兜博客', '露兜中文博客' );
이 문의 기능은 모든 기사의 Pandou Blog 단어를 Pandou Chinese Blog로 바꾸는 것입니다. 필요에 따라 일부 변경. 기사 내용은 데이터베이스에 HTML 코드 형태로 저장되기 때문에 위의 SQL 문도 HTML 코드를 대체할 수 있습니다.
다른 링크에 영향을 주지 않고 기사 그림에 대한 링크만 변경하려면 다음 SQL 문을 사용하면 됩니다. src="oldurl.com은 모두 src="newurl.com
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. 기사 요약을 일괄 수정합니다:
기사 요약은 "Abstract"에 입력한 내용입니다. WordPress 배경에서 기사를 편집할 때 기사 요약을 일괄적으로 변경하려면 다음 명령문을 사용할 수 있습니다.
UPDATE wp_posts SET post_excerpt = replace( post_excerpt, '露兜博客', '露兜中文博客' );
이 명령문의 기능은 Pandou Blog 단어를 모두 바꾸는 것입니다. 모든 기사 요약은 Pandou Chinese Blog를 통해 확인할 수 있습니다.
3. 기사 작성자 일괄 수정:
귀하의 블로그에 Zhang San과 Li Si라는 두 명의 등록 사용자가 있고 Zhang San의 모든 기사를 Li Si로 분류하고 싶다고 가정해 보겠습니다. 이때 무엇을 해야 합니까? 무엇을 해야 할까요? 다음 명령문을 실행할 수 있습니다.
UPDATE wp_posts SET post_author = 李四用户id WHERE post_author = 张三用户id;
그러면 Li Si의 사용자 ID와 Zhang San의 사용자 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、批量修改文章评论者的网站URL:
假设,你的博客有个非常忠实的读者,给你的博客文章留下很多有用的评论,同时他的评论都填写了留言者的网站URL,但是有一天他的博客域名换了,并请求你更新他留言中的网站URL,那你怎么办?手动一个一个帮他改,这不太现实。你可以使用以下SQL语句:
UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'oldurl.com', 'newurl.com' )
以上语句,将留言者所有旧的网站链接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';
7、删除某个评论者的所有评论:
如果你的博客想要封杀某人,并删除其在你博客的所有留言,可以使用以下SQL语句。
(1)根据留言者的博客URL进行删除,以下SQL语句将删除所有URL为 www.example.com 的评论
DELETE from wp_comments WHERE comment_author_url LIKE '%www.example.com%';
(2)根据留言者的昵称进行删除,以下语句将删除所有昵称为 example 的评论
DELETE from wp_comments WHERE comment_author = 'example';
(2)根据留言者的Email进行删除,以下语句将删除所有Email为 example@example.com 的评论
DELETE from wp_comments WHERE comment_author_email = 'example@example.com';
8、替换所有评论中的敏感词汇:
国内的互联网监控力度表现出了不断加强的趋势,如果你的博客评论中出现了大量的敏感词汇,很可能离被墙也不远了。最好的做法是,替换相关的敏感词汇,以保证你的博客安全,以下SQL语句将所有评论中的 fuck,替换成 **,替换内容根据你的需要来。
UPDATE wp_comments SET comment_content = replace( comment_content, 'fuck', '**' );
9、关闭文章评论功能
有时候你的博客可能会因为某种原因,需要关闭文章的评论。在WordPress后台 - 设置 - 讨论,那里取消勾选"允许人们发表新文章的评论",以后发表的文章默认是关闭评论的。但是之前已经发表的文章,若想关闭评论需要你一篇一篇地去修改评论设置,这是一件比较痛苦的事情。以下SQL语句可以帮助你轻松地批量关闭文章评论:
(1) 关闭所有旧文章的评论:
通常情况下,一篇旧文章就很少会有人发表评论了,一般访问旧文章的访客大都来自搜索引擎,这是好事,但是这部分访客还会提出一些新问题,尤其是技术问题,但是可能文章中提到的技术细节你已经淡忘,这时候会让你很难办。最好的做法还是还是禁用旧文章的评论,以下SQL将禁止2009-01-01之前发表的所有文章的评论,你可以根据需要修改日期:
UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish';
(2) 关闭所有文章的评论:
有时候很不幸,在不可抗力的威胁下,你不得不关闭所有文章的评论,可以使用以下SQL语句:
UPDATE wp_posts SET comment_status = 'closed' WHERE post_status = 'publish';
推荐学习:《WordPress教程》