web-dev-qa-db-fra.com

Supprimer tous les champs personnalisés à la fois?

J'ai environ 50 champs personnalisés que je dois supprimer en même temps, parcourir chacun d'eux et en supprimer un à la fois prendrait trop de temps, car le chargement d'une page prend environ 4 secondes et je n'ai tout simplement pas le temps de le faire.

Je dois les supprimer car j'avais précédemment utilisé un plugin appelé ACF (Advanced Custom Field), mais apparemment, il ne fonctionne pas bien avec qTranslate. Je remplace donc ACF par un autre plugin appelé Types, qui fait à peu près la même chose. un peu plus laid. Le problème est que, même après la suppression de tous les groupes de champs personnalisés avec ACF, les champs sont toujours là! Et je dois les supprimer car sinon, je ne peux pas créer de nouveaux champs avec le même nom avec Types.

J'ai trouvé un plugin appelé "Supprimer les champs personnalisés" mais cela n'a pas fonctionné.

D'autres idées sur la façon de supprimer tous en même temps? Puis-je supprimer manuellement les champs de la base de données?

EDIT: Je devrais également mentionner que vous pouvez gérer les champs personnalisés à partir de Types, mais vous ne pouvez apparemment gérer que ceux qui sont "sous le contrôle de Types" a.k.a. ceux créés par Types, de sorte que cela ne fonctionnait pas.

1
qwerty

Vous pouvez utiliser la méthode SQL. Allez dans votre outil de base de données, comme phpMyAdmin ou Adminer (également possible via un plugin dans le back-end WordPress). Utilisez la zone SQL pour créer des requêtes personnalisées.

Avant de commencer, créez une sauvegarde de la base de données et une sauvegarde unique pour la table _postmeta.

Remplacez la chaîne wpbeta_2 par votre préfixe, il ne s'agit que d'un exemple.

Obtenez tous les champs qui ont un champ personnalisé:

SELECT *  FROM `wpbeta_2_postmeta` WHERE `meta_key` != ''

Maintenant que vous avez une liste de tous les champs, cochez cette case.

Supprimer un champ spécifique:

DELETE FROM `wpbeta_2_postmeta` WHERE `meta_key` = 'modules'

Supprimer tous les champs:

DELETE FROM `wpbeta_2_postmeta` WHERE `meta_key` != ''
1
bueltge

En utilisant Types, vous POUVEZ prendre le contrôle de vos champs personnalisés existants. Vous n'avez pas besoin de les supprimer. Recherchez sous Types -> Contrôle de champs personnalisé, sélectionnez les champs et Editer en bloc pour "Ajouter au contrôle de types"

2
Keith Rowland

Pour tout supprimer, ouvrez phpmyadmin, accédez à la base de données wordpress & tronquez la table wp_postmeta

si vous souhaitez les supprimer pour un identifiant de post particulier, recherchez celui-ci dans la colonne correspondante et supprimez tous ceux trouvés.

0
Mridul Aggarwal