Wordpress (base de données)
Il y a plein de choses à savoir sur la base de données de Wordpress, quand on veut y accéder depuis d'autres programmes sans utiliser l'API Wordpress (cas de l'annuaire par exemple).
La documentation n'est pas évidente, parfois contradictoire, parfois obsolète.
D'une version majeure de WP à une autre, certaines champs disparaissent, d'autres sont conservés mais ne doivent plus être utilisés, etc.
Dans cette documentation, le préfixe des tables sera représenté par WP_.
Dernière mise à jour : 2016-11-07 : Wordpress 4.6.1
Utilisateurs
Tables :- WP_users (un tuple par utilisateur)
- WP_usermeta (n tuples par utilisateur)
Utilisateurs : infos sur les champs
- WP_users
- le champ user_activation_key n'est jamais rempli, il est remplacé par WP_usermeta.activation_key
- le champ user_status n'est utilisé que pour catégoriser l'utilisateur comme spammeur (= 1), la valeur 2 pour désigner un compte non activé n'est plus fiable, utiliser WP_usermeta.activation_key à la place
- le champ user_pass contient le mot de passe encodé avec la méthode PHPass, dont on trouve une implémentation ici (utilisable avec Composer)
- WP_usermeta
- la présence d'une clef activation_key indique que le compte n'est pas encore validé
- la présence d'une clef WP_capabilities avec une valeur correcte (ex: a:1:{s:11:"contributor";b:1;}) est nécessaire sans quoi le compte ne fonctionnera pas correctement
SĂ©lectionner les "vrais" utilisateurs
C'est à dire ayant un compte actif, et n'étant pas catégorisés comme SPAM.SELECT * FROM WP_users WHERE user_status != 1 AND id NOT IN (SELECT user_id FROM WP_usermeta WHERE meta_key = 'activation_key');