Wie man eine Kategorie für Posts ohne Plugin massenhaft abwählt

Veröffentlicht: 2020-10-05

„Kategorie“ ist eine Standardtaxonomie in WordPress. Operatoren können Kategorien verwenden, um Blog-Posts in verschiedene Abschnitte zu sortieren und zu gruppieren. Kategorien helfen den Besuchern auch, schneller auf Websites zu navigieren und zu wissen, um welche Themen es sich auf Ihren Websites handelt. Ein Website-Betreiber kann grundlegende Operationen mit Kategorien und Beiträgen mit WordPress-Admin-Panels sowie mit WordPress-Plugins implementieren, um Beiträge auf verschiedene Weise zu manipulieren.

Inhaltsverzeichnis ausblenden
  1. 1. Verstehen, wie WordPress Web-Anfragen von Kunden handhabt?
  2. 2. Wichtige Tabellen für die Massenbearbeitung von WordPress-Posts
  3. 3. Verschieben Sie alle Beiträge aus einer Kategorie in eine andere Kategorie – mit SQL-Befehlen
    1. 3.1. Erhalten Sie eine ID-Liste aller Beiträge, die zu einer bestimmten Kategorie gehören
    2. 3.2. Holen Sie sich eine ID der neuen Kategorie
    3. 3.3. Aktualisieren Sie die Beiträge mit Listen mit angegebenen IDs
  4. 4. Letzte Worte

Die übermäßige Verwendung von Plugins für WordPress-Sites sollte jedoch keine Option sein, da dies wahrscheinlich zu möglichen Leistungsproblemen und Sicherheitsproblemen führt. In diesem Artikel erfahren Sie, wie Sie die Auswahl einer Kategorie für Beiträge ohne Verwendung von Plugins aufheben .

Verstehen, wie WordPress Webanfragen von Kunden verarbeitet?

Um die WordPress-Site zu manipulieren, ist es erforderlich zu verstehen, wie ein Webserver eine Anfrage von einem Client verarbeitet. Die detaillierten Operationen umfassen die Massenabwahl von Posts in einer Kategorie.

Der typische Webserver ist der LAMP-Stack (Linux – Apache – MySQL/MariaDB – PHP). Andere äquivalente Konzepte finden sich in anderen Webserver-Plattformen.

Um die Auswahl von Beiträgen in großen Mengen aufzuheben, sollten Sie sich darüber informieren, wie WordPress Anfragen verarbeitet.

LAMP stapelt die Server-Client-Kommunikation

1. Der Client sendet HTTP-Anfragen, um Webdaten vom Webserver anzufordern.

2. Der Webserver empfängt gültige HTTP-Anfragen von Clients (nach dem Passieren von Firewall-Regeln):

  • Analysieren Sie die Struktur von HTTP-Anfragen, identifizieren Sie, welche HTML-Seiten genau die Clients benötigen;
  • Analysieren der Anforderungen an die Scripting-Schichten (PHP).

3. Die Scripting-Schichten PHP:

  • Datenbank abfragen, alle notwendigen Informationen einholen;
  • Kombinieren Sie mit Quellcode in den Designs, um dynamische Webseiten zu rendern;
  • Kehren Sie zum Webserver zurück.

4. Der Webserver:

  • Konstruieren Sie HTTP-Antwortnachrichten.
  • Senden Sie HTTP-Antwortnachrichten an Clients.

5. Der Client empfängt HTTP-Antwortnachrichten vom Webserver und zeigt dann die Webdaten in seinen Webbrowsern an.

Wichtige Tabellen für die Massenbearbeitung von WordPress-Beiträgen

Es gibt ein Paket von Tabellen im Schema der Datenbank von WordPress-Sites. Die Schemata variieren von Site zu Site. Bei der Manipulation von Beiträgen der WordPress-Site sollten diese Tabellen jedoch stärker besorgniserregend sein:

Tabellenname Beschreibungen
wp_postmeta Speichern Sie zusätzliche inhaltsbezogene Daten einer WordPress-Site.
wp_post Speichern Sie alle wichtigen inhaltsbezogenen Daten einer WordPress-Site.
wp_term_relationships Speichern Sie alle Verbindungsdaten, die Beiträge mit Kategorien, Tags und Links verbinden. Die Informationen aus dieser Tabelle dienen als Zuordnung zwischen den Begriffsobjekten und den Begriffen.
wp_term_taxonomy Speichern Sie zusätzliche Daten für wp_terms Tabellen.
wp_term Speichern Sie Kategorien, Tags für Beiträge, Seiten und Links.

Verschieben Sie alle Beiträge aus einer Kategorie in eine andere Kategorie – mit SQL-Befehlen

Um die WordPress-Datenbank direkt zu manipulieren, müssen Betreiber entscheiden, welches DBMS (Database Management System) verwendet werden soll. Da die Laborumgebung den LAMP-Stack als Webplattform verwendet, können Betreiber mit WordPress-Datenbanken mit phpMyAdmin, WordPress-Plugins und sogar MySQL-Client (Terminalbefehl) über SSH-Sitzungen arbeiten … In diesem Szenario ist das DBMS zur besseren Veranschaulichung MySQL WorkBench.

Bevor Sie Änderungen an WordPress-Datenbanken vornehmen, ist es ratsam, ein vollständiges Backup der WordPress-Site zu erstellen. Dieses vollständige Backup enthält den WordPress-Quellcode (Themes, PHP-Dateien …) und die Datenbankstruktur. Für ideale Zwecke können Betreiber ein vollständiges Backup des gesamten Hosts erstellen, auf dem die WordPress-Site ausgeführt wird.

Hier sind die vollständigen SQL-Skripte, um alle Beiträge aus der Kategorie „Nicht kategorisiert“ in die Kategorie „Inspirationen“ zu verschieben.

 SET @listID = (
     	GROUP_CONCAT(ID) VON wp_posts WÄHLEN
             	WO post_type="post"
             	UND post_status = "veröffentlichen"
             	UND ID-IN (
                      	SELECT object_id FROM wp_term_relationships
                               	WHERE term_taxonomy_id IN (
                                        	SELECT term_taxonomy_id FROM wp_term_taxonomy
                                                	WHERE-Taxonomie = "Kategorie"
                                                	UND term_id IN (
                                                         	WÄHLEN Sie t.term_id FROM wp_terms t
                                                                  	WHERE t.name="Nicht kategorisiert"
   	 )
	)
)
);

SET @newCategoryID = (
     	SELECT t.term_id FROM wp_terms t WHERE t.name='Inspirationen'
);
 
SELECT @neueKategorie-ID;
 
set @sqlCmd = CONCAT(
     	'UPDATE wp_term_relationships tr',
	'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
	'WHERE tr.object_id IN (', @listID , ');'
);

SELECT @sqlCmd;

PREPARE stmt FROM @sqlCmd;
SET SQL_SAFE_UPDATES = 0;
EXECUTE stmt;
SET SQL_SAFE_UPDATES = 1;
AUFHEBEN VORBEREITEN stmt;

Das detaillierte Skript wird wie folgt erklärt.

Erhalten Sie eine ID-Liste aller Beiträge, die zu einer bestimmten Kategorie gehören

In dieser Demo zeigen wir, wie Sie die Auswahl aller Beiträge aus der Kategorie "Nicht kategorisiert" aufheben und sie dann in eine neue Kategorie namens "Inspirationen" verschieben.

Aus dem WordPress-Admin-Panel werden diese 3 Beiträge in der Kategorie „Nicht kategorisiert“ sortiert.

Holen Sie sich eine ID-Liste mit 3 Beiträgen, um die Auswahl einer Kategorie für sie aufzuheben.

Die folgenden SQL-Befehle rufen alle Beitrags-IDs einer Kategorie namens „Unkategorisiert“ ab.

 SET @listID = (
     	GROUP_CONCAT(ID) VON wp_posts WÄHLEN
             	WO post_type="post"
             	UND post_status = "veröffentlichen"
             	UND ID-IN (
                      	SELECT object_id FROM wp_term_relationships
                               	WHERE term_taxonomy_id IN (
                                        	SELECT term_taxonomy_id FROM wp_term_taxonomy
                                                	WHERE-Taxonomie = "Kategorie"
                                                	UND term_id IN (
                                                         	WÄHLEN Sie t.term_id FROM wp_terms t
                                                                  	WHERE t.name="Nicht kategorisiert"
        )
    )
)
);

Überprüfen Sie den Wert von @listID :

Rufen Sie die Beitrags-ID-Liste ab, um die Auswahl einer Kategorie für Beiträge aufzuheben.

Holen Sie sich eine ID der neuen Kategorie

 SET @newCategoryID = (
    	SELECT t.term_id FROM wp_terms t WHERE t.name='Inspirationen'
);

Überprüfen Sie den Wert von @newCategoryID :

Rufen Sie die neue Kategorie-ID ab und verschieben Sie die Beiträge dorthin, nachdem Sie die Auswahl der Kategorie "Nicht kategorisiert" im Bulk aufgehoben haben.

Aktualisieren Sie die Beiträge mit Listen mit angegebenen IDs

Erstellen Sie zunächst einen SQL-Befehl und speichern Sie ihn in einer Variablen @sqlCmd .

 /* Erwarteter Befehl in Variable @sqlCmd gespeichert:
UPDATE wp_term_relationships tr
SET tr.term_taxonomy_id = 5
WHERE tr.object_id IN (131,132,133);

*/
set @sqlCmd = CONCAT(
    	'UPDATE wp_term_relationships tr',
	'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
	'WHERE tr.object_id IN (', @listID , ');'
);

Zweitens, überprüfen Sie es:

Überprüfen Sie den SQL-Befehl, um die Beiträge mit den angegebenen ID-Listen zu aktualisieren.

@sqlCmd die in der Variablen @sqlCmd gespeicherten SQL-Befehle mit den folgenden Anweisungen aus:

 PREPARE stmt FROM @sqlCmd;
SET SQL_SAFE_UPDATES = 0;
EXECUTE stmt;
SET SQL_SAFE_UPDATES = 1;
AUFHEBEN VORBEREITEN stmt;

Hier ist das Ergebnis:

Das Ergebnis der Massenabwahl einer Kategorie für Beiträge ohne Plugin.

Letzte Worte

Es gibt verschiedene Möglichkeiten, eine Kategorie für Beiträge in WordPress-Sites massenweise abzuwählen. Entweder durch die Verwendung von Plugins zur Interaktion über eine Webschnittstelle oder durch die Verwendung von SQL-Befehlen, um einen direkten Einfluss auf die WordPress-Datenbank zu nehmen, sollten Bediener verstehen, welche wesentlichen Objekte geändert werden.

Hoffentlich bietet Ihnen dieser Artikel eine weitere Möglichkeit, die Auswahl einer Kategorie für Beiträge aufzuheben. Um weitere nützliche Techniken in WordPress zu erhalten, folgen Sie unseren kommenden Artikeln!

Wenn Sie ein Plugin verwenden möchten, um die Auswahl einer Kategorie für Beiträge einfacher zu deaktivieren, lesen Sie diesen Artikel.