web-dev-qa-db-fra.com

Comment créer et utiliser des données/tables personnalisées (c'est-à-dire pour des données arbitraires)?

Commencer à utiliser Wordpress aujourd'hui. J'ai remarqué que Wordpress avait créé des tables dans une base de données mySql (avec le nom * .wrdp1) lors de ma première configuration. Ces tableaux couvrent les commentaires, les publications, les utilisateurs et certaines relations de lien.

Maintenant, supposons que je souhaite travailler avec un nouvel ensemble de données. Supposons que je crée une page avec deux choses:

  • un champ de texte , où mes utilisateurs peuvent entrer un nombre compris entre 1 et 10
  • un graphique , qui affiche la fréquence des nombres entrés historiquement par mes utilisateurs

Mon hypothèse: pour quelque chose comme ce qui précède, je suppose que je devrai configurer une table/un ensemble de données personnalisé dans la base de données , de sorte que ce nombre les données peuvent être écrites puis lues. (Je suppose également que je devrai utiliser du code PHP afin de stocker le numéro du champ de texte dans la base de données, puis de le relire.)

Quelqu'un peut-il indiquer en gros ce qu'est une approche recommandée dans ce cas? (Je peux par la suite rechercher moi-même les détails exacts.)

1
boardbite

WordPress a une manière assez souple de gérer des données personnalisées et les stocke dans une table appelée wp_postmeta (en supposant le préfixe wp_ par défaut). Le seul problème, c'est que cela suppose qu'il sera lié à un certain message, ce que je ne suis pas sûr de vouloir réellement faire.

C'est très simple à utiliser (voir ici pour plus d'informations):

// Add a custom data (i.e. textfield of value '5') for post ID = 1
update_post_meta(1, 'my_textfield', 5);

// Return an array which contains 'my_textfield' values from post ID = 1
get_post_meta(1, 'my_textfield', true);

Si les informations ne sont pas liées à une publication, mais plutôt à un utilisateur, vous pouvez également tirer parti de la table wp_usermeta. L'idée est la même (voir ici pour plus):

// Add a custom data (i.e. textfield of value '5') for to user 1
update_user_meta(1, 'my_textfield', 5);

// Return an array which contains 'my_textfield' values for user 1
get_user_meta(1, 'my_textfield', true);

La création d’une table personnalisée ne doit être utilisée qu’en dernier recours et ne doit être utilisée que lorsque les informations personnalisées que vous souhaitez stocker ont plusieurs valeurs (c’est-à-dire que vous devez connaître le numéro choisi par l’utilisateur, son heure d’enregistrement, son adresse IP). , etc). Dans ce cas, vous devrez coder vos propres fonctions pour ajouter des valeurs à cette table, sans parler du code PHP qui créera cette table en premier lieu. C'est plus compliqué, quiconque l'a déjà fait avant attestera que c'est une affaire délicate et difficile à déboguer. De plus, rien ne garantit que cela ne se cassera pas dans les futures versions de WordPress. Quoi qu'il en soit, si c'est ce dont vous avez besoin, ceci devrait vous aider à démarrer.

J'espère que ça aide! Tiens nous au courant de comment ça se passe.

1
Tomas Buteler

Pour ajouter à la réponse de @ tbuteler, vous avez également des types de publication personnalisés qui peuvent avoir leurs propres métadonnées associées. Si vous consultez la page Post Types , vous verrez comment WordPress les utilise de manière non évidente, telle que le stockage d'éléments de menu de navigation. Il existe également des taxonomies personnalisées qui peuvent être utilisées pour créer des relations telles que les catégories et les balises intégrées. Comme pour les métadonnées, il existe tout un ensemble de fonctions API permettant de gérer ces objets afin de vous permettre de créer votre propre interface utilisateur pour gérer vos données.

2
Milo