web-dev-qa-db-fra.com

Comment fusionner des catégories avec phpMyAdmin

J'ai essayé la requête phpMyAdmin suivante pour fusionner ma catégorie 112747 dans ma catégorie 112748:

UPDATE `wp_term_relationships`
SET `term_taxonomy_id` = 112747
WHERE `term_taxonomy_id` = 112748;

Cela n'a pas fonctionné. Quelles erreurs contient la requête?

wordpress 3.8.2

phpMyAdmin 4.18

MySQL 5.5.34-cll-lve

Un de mes sites wordpress compte près de 300 000 publications, la plupart des catégories contenant au moins 5 000 publications. Je souhaite, entre autres, fusionner plusieurs catégories afin d’améliorer la vitesse et les performances de votre site Web.

J'ai essayé d'utiliser plusieurs plugins différents pour fusionner des catégories à partir du tableau de bord wordpress, mais il semble que ma capacité à utiliser les plugins réussisse est affectée négativement par diverses fonctionnalités de suppression automatique/mysql, cpu et php de l'environnement d'hébergement partagé (cloudlinux). ) où se trouve mon site Web; en d'autres termes, les tâches sont "tuées" avant même d'être terminées, parfois en "écrasant" tout le site.

Je suis conscient que la suppression d'une catégorie à l'aide du tableau de bord wordpress déplace les publications de cette catégorie dans la catégorie par défaut. alors, j'ai même essayé de changer la catégorie par défaut en une catégorie dans laquelle je souhaite fusionner la catégorie "une autre" et supprimer la catégorie "une autre", mais apparemment, la tâche est toujours, éventuellement, "tuée" ou "temporisée" .

En général, lorsque je tente de fusionner des catégories, à partir du tableau de bord wordpress, à l'aide d'un plugin ou en supprimant une catégorie, c'est que la "fusion" n'est que partiellement terminée. Par exemple, 30 ou 400 publications d'une catégorie sont peut-être fusionnées, mais la tâche est alors "tuée" ou "expirée", générant parfois une erreur dans le tableau de bord wordpress, parfois "écrasant" le site Web, et faisant parfois tous les deux.

En règle générale, si tous les articles ne sont pas fusionnés, je suis en mesure de répéter la tâche, progressivement, à l'aide du tableau de bord wordpress, mais vous devrez peut-être répéter l'opération plusieurs fois pour obtenir une catégorie de 15 000 articles fusionnés dans une autre catégorie. De plus, si le site Web "se bloque" sur une "répétition" particulière, je dois alors attendre que le site Web se "rétablisse" après le crash.

Donc, considérant les problèmes susmentionnés rencontrés, tout en essayant de fusionner des catégories à partir du tableau de bord wordpress, j'ai pensé qu'il serait beaucoup plus simple et efficace d'utiliser simplement phpMyAdmin pour fusionner des catégories, etc.

Cependant, il semble que la structure de la base de données wordpress soit devenue beaucoup plus complexe. Je pensais pouvoir utiliser phpMyAdmin pour faire ce genre de chose il y a environ 5 ans, avec beaucoup plus de facilité et de simplicité.

Dans ce cas particulier, je confirme "l'identifiant de taxonomie du terme", etc., plusieurs fois avant de tenter la requête proprement dite; afin d'éviter des erreurs inutiles. Cependant, certains de mes messages de forum peuvent afficher des identifiants de taxonomie de terme incorrects, car, dans ce cas particulier, de la manière dont j'ai copié/collé à partir d'un fichier texte répertoriant toutes mes tentatives infructueuses. Encore une fois, lorsque je tente réellement une requête, cependant, je vérifie plusieurs fois des choses telles que "l'identifiant de taxonomie de terme", avant de poursuivre la requête.

2
q305noonce

Vous ne pouvez pas simplement "fusionner des catégories", vous devez changer la catégorie à laquelle chaque publication est associée. La table WP_TERM_RELATIONSHIPS relie les publications aux catégories. Vous pouvez essayer quelque chose comme ça:

UPDATE wp_term_relationships 
SET term_taxonomy_id = 
   (SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE term_id = 112748)
WHERE term_taxonomy_id =
   (SELECT term_taxonomy_id FROM wp_term_taxonomy WHERE term_id = 112747)

Vous pouvez aussi essayer ce plugin: http://wordpress.org/plugins/batchmove/

1
unifiedac