Comment désélectionner en bloc une catégorie pour les articles sans plugin
Publié: 2020-10-05« Catégorie » est une taxonomie par défaut dans WordPress. Les opérateurs peuvent utiliser des catégories pour trier et regrouper les articles de blog en différentes sections. Les catégories aident également les visiteurs à naviguer plus rapidement sur les sites, ainsi qu'à connaître les sujets sur lesquels portent vos sites Web. Un opérateur de site Web peut implémenter des opérations de base avec des catégories et des publications avec les panneaux d'administration WordPress ainsi qu'utiliser des plugins WordPress pour manipuler les publications de différentes manières.
- 1. Comprendre comment WordPress gère les demandes Web des clients ?
- 2. Tableaux importants pour la manipulation en bloc des publications WordPress
- 3. Déplacer toutes les publications d'une catégorie vers une autre catégorie - Utilisation des commandes SQL
- 3.1. Obtenez une liste d'identification de tous les messages appartenant à une catégorie spécifique
- 3.2. Obtenez un identifiant de la nouvelle catégorie
- 3.3. Mettre à jour les messages avec les listes d'identifiants donnés
- 4. Derniers mots
Cependant, l'utilisation excessive de plugins pour les sites WordPress ne devrait pas être une option car elle provoque probablement des problèmes de performances et de sécurité potentiels. Dans cet article, apprenons comment désélectionner en bloc une catégorie pour les publications sans utiliser de plugins .
Comprendre comment WordPress gère les demandes Web des clients ?
Comprendre comment un serveur Web gère une requête d'un client est nécessaire pour manipuler le site WordPress. Les opérations détaillées incluent la désélection en bloc des publications dans une catégorie.
Le serveur Web typique est la pile LAMP (Linux – Apache – MySQL/MariaDB – PHP). D'autres concepts équivalents peuvent être trouvés dans d'autres plates-formes de serveur Web.

LAMP empile la communication serveur-client
1. Le client envoie des requêtes HTTP pour demander des données Web au serveur Web.
2. Le serveur Web reçoit des requêtes HTTP valides des clients (après avoir passé les règles de pare-feu) :
- Analysez la structure des requêtes HTTP, identifiez exactement les pages HTML dont les clients ont besoin ;
- Analyser les requêtes aux couches de script (PHP).
3. Les couches de script PHP :
- Interroger la base de données, obtenir toutes les informations nécessaires ;
- Combinez avec le code source dans les thèmes pour rendre des pages Web dynamiques ;
- Retournez au serveur Web.
4. Le serveur Web :
- Construisez des messages de réponse HTTP.
- Envoyez des messages de réponse HTTP aux clients.
5. Le client reçoit des messages de réponse HTTP du serveur Web, puis affiche les données Web dans ses navigateurs Web.
Tableaux importants pour la manipulation en masse des articles WordPress
Il existe un pack de tables dans le schéma de la base de données des sites WordPress. Les schémas varient d'un site à l'autre. Cependant, lors de la manipulation des publications du site WordPress, ces tableaux devraient être plus préoccupants :
| Nom de la table | Descriptifs |
wp_postmeta | Stockez des données supplémentaires liées au contenu d'un site WordPress. |
wp_post | Stockez toutes les données importantes liées au contenu d'un site WordPress. |
wp_term_relationships | Stockez toutes les données de conjonction reliant les publications aux catégories, balises, liens. Les informations de ce tableau agissent comme une carte entre les termes objets et les termes. |
wp_term_taxonomy | Stockez des données supplémentaires pour les tables wp_terms . |
wp_term | Stockez les catégories, les balises pour les articles, les pages et les liens. |
Déplacer tous les articles d'une catégorie vers une autre catégorie - Utilisation des commandes SQL
Afin de manipuler directement la base de données WordPress, les opérateurs doivent décider quel SGBD (Système de gestion de base de données) utiliser. Parce que l'environnement de laboratoire utilise la pile LAMP comme plate-forme Web, les opérateurs peuvent travailler avec des bases de données WordPress en utilisant phpMyAdmin, des plugins WordPress, même un client MySQL (commande terminal) via des sessions SSH… Dans ce scénario, le SGBD est MySQL WorkBench pour un meilleur but d'illustration.
Avant de mettre en œuvre toute modification dans les bases de données WordPress, il est conseillé d'avoir une sauvegarde complète du site WordPress. Cette sauvegarde complète inclut le code source WordPress (thèmes, fichiers PHP…) et la structure de la base de données. À des fins idéales, les opérateurs peuvent créer une sauvegarde complète de l'ensemble de l'hôte exécutant le site WordPress.

Voici les scripts SQL complets pour déplacer tous les articles de la catégorie « Non classé » vers la catégorie « Inspirations ».
SET @listID = (
SELECTIONNER GROUP_CONCAT (ID) DE wp_posts
O post_type="post"
ET post_status = "publier"
ET ID IN (
SELECT object_id FROM wp_term_relationships
O term_taxonomy_id IN (
SELECTIONNER term_taxonomy_id FROM wp_term_taxonomy
WHERE taxonomie = "catégorie"
AND term_id IN (
SELECTIONNER t.term_id FROM wp_terms t
O t.name="Non classé"
)
)
)
);
SET @newCategoryID = (
SELECTIONNER t.term_id FROM wp_terms t O t.name='Inspirations'
);
SELECT @newCategoryID;
définir @sqlCmd = CONCAT(
'UPDATE wp_term_relationships tr',
'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
'WHERE tr.object_id IN (', @listID , ');'
);
SELECT @sqlCmd;
PREPARER stmt DE @sqlCmd;
FIXER SQL_SAFE_UPDATES = 0 ;
EXECUTER stmt;
FIXER SQL_SAFE_UPDATES = 1 ;
DESALLOCATE PREPARE stmt;Le script détaillé sera expliqué comme suit.
Obtenez une liste d'identification de tous les messages appartenant à une catégorie spécifique
Dans cette démo, nous montrerons comment désélectionner en bloc tous les messages de la catégorie « Non classés », puis les déplacer vers une nouvelle catégorie nommée « Inspirations ».
Depuis le panneau d'administration de WordPress, ces 3 articles sont triés dans la catégorie "Non classé".

Les commandes SQL ci-dessous récupéreront tous les identifiants de publication d'une catégorie nommée "Non classé".
SET @listID = (
SELECTIONNER GROUP_CONCAT (ID) DE wp_posts
O post_type="post"
ET post_status = "publier"
ET ID IN (
SELECT object_id FROM wp_term_relationships
O term_taxonomy_id IN (
SELECTIONNER term_taxonomy_id FROM wp_term_taxonomy
WHERE taxonomie = "catégorie"
AND term_id IN (
SELECTIONNER t.term_id FROM wp_terms t
O t.name="Non classé"
)
)
)
); Vérifiez la valeur de @listID :

Obtenez un identifiant de la nouvelle catégorie
SET @newCategoryID = (
SELECTIONNER t.term_id FROM wp_terms t O t.name='Inspirations'
); Vérifiez la valeur de @newCategoryID :

Mettre à jour les messages avec les listes d'identifiants donnés
Tout d'abord, @sqlCmd une commande SQL et stockez-la dans une variable @sqlCmd .
/* Commande attendue stockée dans la variable @sqlCmd :
MISE À JOUR wp_term_relationships tr
SET tr.term_taxonomy_id = 5
WHERE tr.object_id IN (131,132,133);
*/
définir @sqlCmd = CONCAT(
'UPDATE wp_term_relationships tr',
'SET tr.term_taxonomy_id = ', @newCategoryID , ' ',
'WHERE tr.object_id IN (', @listID , ');'
);Deuxièmement, vérifiez-le :

Enfin, @sqlCmd les commandes SQL stockées dans la variable @sqlCmd avec les instructions ci-dessous :
PREPARER stmt DE @sqlCmd; FIXER SQL_SAFE_UPDATES = 0 ; EXECUTER stmt; FIXER SQL_SAFE_UPDATES = 1 ; DESALLOCATE PREPARE stmt;
Voici le résultat :

Derniers mots
Il existe différentes manières de désélectionner en bloc une catégorie pour les publications sur les sites WordPress. Soit en utilisant des plugins pour interagir via une interface Web, soit en utilisant des commandes SQL pour avoir un impact direct sur la base de données WordPress, les opérateurs doivent comprendre quels sont les objets essentiels en cours de modification.
Espérons que cet article vous donne un autre choix pour désélectionner en bloc une catégorie de publications. Pour obtenir des techniques plus utiles dans WordPress, suivons nos prochains articles !
Si vous souhaitez utiliser un plugin pour désélectionner en bloc une catégorie de publications plus facilement, reportez-vous à cet article.
