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');

Ajouts de Buddypress


Posts (articles)

...

Pages

...