Sind Sie jemals auf die folgenden Situationen gestoßen:
- Der Blog hat den Domainnamen geändert und auch der Inhalt der Blogartikel hat sich geändert
- Die verwendete Bildadresse wurde geändert
- Ich habe viele Artikel geschrieben, rückblickend Autor wechseln
- Möchte alle Kommentare eines hasserfüllten Kommentators löschen
- Möchte die Website-URL aller Kommentare eines bestimmten Kommentators ändern
- Möchte das Pingback aller Artikel deaktivieren
- Möchte die Kommentarfunktion für alle deaktivieren Artikel
Alle Alle diese Artikel beinhalten ein Schlüsselwort: Batch-Modifikation. Wenn Sie den Inhalt von Artikeln einzeln im WordPress-Backend ändern, wird Sie das meiner Meinung nach in den Wahnsinn treiben. Bei einigen Blogs mit Tausenden von Artikeln ist es fast unmöglich, diese Aufgabe abzuschließen. In diesem Artikel erfahren Sie, wie Sie SQL-Anweisungen verwenden, um Ihre Datenbank zu betreiben und eine Stapeländerung von Daten durchzuführen.
Wenn Sie noch nie datenbankbezogene Kenntnisse erworben haben, wissen Sie definitiv nicht, was SQL ist. Für den in diesem Artikel behandelten Inhalt ist jedoch kein Verständnis von Datenbankkenntnissen erforderlich, und Sie müssen auch nicht über Kenntnisse im Schreiben von SQL-Anweisungen verfügen . Sie können diesen Artikel direkt verwenden. Nachfolgend stellen wir die Funktionen der einzelnen SQL-Anweisungen vor. Alle Anweisungen verwenden das Standard-Tabellenpräfix wp_.
Bevor wir beginnen, stellen wir Ihnen Folgendes vor, wie Sie SQL-Anweisungen ausführen und Batch-Operationen durchführen. Heutzutage verwenden die meisten Bereiche phpmyadmin zum Verwalten von Datenbanken. Hier verwenden wir phpmyadmin als Beispiel, um die Ausführung von SQL-Anweisungen vorzustellen:
Rufen Sie Ihre phpmyadmin-Verwaltungsseite auf und geben Sie dann die Datenbank ein, die Ihrem Blog entspricht
Menü bar Es gibt eine SQL-Option, klicken Sie darauf
Ein Eingabefeld für SQL-Anweisungen wird angezeigt, und jetzt können Sie darin die SQL-Anweisungen eingeben
Klicken Sie nach der Eingabe auf Ausführen, das SQL, das Sie benötigen Die gerade eingegebene Anweisung wird ausgeführt.
Die SQL-Anweisung wurde ausgeführt und Ihre Artikel wurden stapelweise geändert. Überprüfen Sie nun, ob alle Ihre Artikel geändert wurden. Zum Schluss noch eine Erinnerung: die SQL-Anweisungen Die unten vorgestellten Befehle sind alle in meinem Blog aufgeführt. Ich habe sie oben getestet. Dennoch ist es eine gute Angewohnheit, Ihre Datenbank regelmäßig zu sichern, bevor Sie sie ausführen.
-
SQL-Befehlsausführungsfenster:
;
1. Batch-Änderung Artikelinhalt:
Wenn Sie Inhalte in allen Artikeln ersetzen möchten, die Sie zuvor geschrieben haben, z. B. den Namen des Blogs ändern, die URL des Blogs ändern, ändern Für den Link zum Artikelbild usw. können Sie die folgende SQL-Anweisung verwenden: UPDATE wp_posts
SET post_content = replace( post_content, '露兜博客', '露兜中文博客' );
Die Funktion dieser Anweisung besteht darin, die Wörter
Pandou Blogzu ersetzen einige Änderungen nach Bedarf. Da der Artikelinhalt in Form von HTML-Code in der Datenbank gespeichert ist, kann die obige SQL-Anweisung auch den HTML-Code ersetzen. Wenn Sie nur den Link zur Artikelillustration ändern möchten, ohne dass sich dies auf andere Links auswirkt, können Sie die folgende SQL-Anweisung verwenden. Alle src="oldurl.com werden durch src="newurl.com ersetzt.
UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="oldurl.com', 'src="newurl.com');
Wenn Sie Wenn Sie es als Bildanhang hochladen, müssen Sie die GUID des Bildanhangs ändern. Feld, wenn Sie den Artikel im WordPress-Hintergrund bearbeiten. Wenn Sie Artikelzusammenfassungen stapelweise ändern möchten, können Sie die folgende Anweisung verwenden:
UPDATE wp_posts SET guid = REPLACE (guid, 'oldsiteurl.com', 'newsiteurl.com') WHERE post_type = 'attachment';
Die Funktion dieser Anweisung besteht darin, alle Wörter im
Pandou-Blog.
3. Ändern Sie den Autor von Artikeln stapelweise:UPDATE wp_posts SET post_excerpt = replace( post_excerpt, '露兜博客', '露兜中文博客' );Wie erhalte ich also die Benutzer-ID von Li Si und die Benutzer-ID von Zhang San? Sie können die folgende SQL-Anweisung ausführen:
UPDATE wp_posts SET post_author = 李四用户id WHERE post_author = 张三用户id;
Die IDs, Spitznamen und öffentlich angezeigten Namen aller registrierten Benutzer in Ihrem Blog werden nun aufgelistet. Sie können nun die entsprechende Benutzer-ID finden, wie unten gezeigt, zhangsan's Die ID ist 2 , und die ID von lisi ist 5:
Ihr SQL kann wie folgt geschrieben werden:SELECT ID, user_nicename, display_name FROM wp_users;
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教程》