web-dev-qa-db-fra.com

Type de message personnalisé ou tableaux personnalisés

Je suis en train d'écrire un plugin qui permet aux utilisateurs finaux de soumettre un formulaire contenant des informations sur les clients. Lors de la soumission, je suis informé qu'un nouveau client a soumis le formulaire de demande. Si j'approuve le compte, je vais créer un compte utilisateur WordPress.

Je suis aux débuts de ce plugin et je veux savoir si je devrais utiliser des tables de base de données personnalisées pour stocker mes informations utilisateur ou si je devais simplement choisir un type de message personnalisé et ajouter des métadonnées au type de message. ?

UPDATE:

Wow, votez déjà à la baisse! Quoi qu'il en soit, une mise à jour de ma question, laissez-moi le formuler de cette façon ... J'ai maintenant essayé de créer un type de publication personnalisé de client , et pour client , je voulais uniquement une méta-boîte contenant prénom et nom . Lorsque j’ai fait cela et que j’ai désactivé toutes les options de support pour le type de publication personnalisé, c’était un cauchemar de lister les publications en raison de la valeur manquante Titre . Il faudrait toujours régler le titre sur "Généré automatiquement" et cela ne fonctionne pas pour moi. J'ai rencontré ce GREAT Plugin (super-cpt) qui facilite grandement la création de types de messages personnalisés et de méta-boîtes.

Par conséquent, je ne suis pas sûr que les types de publication personnalisés fonctionnent pour moi car il faut effectuer beaucoup de travail d'interface utilisateur personnalisée pour convaincre le tableau de bord frontal et administratif de fonctionner pour moi. Je me penche de plus en plus sur les tables de données personnalisées, mais j'aimerais plus d'informations sur la personnalisation du formulaire de modification pour un type de publication personnalisé. Quelqu'un a-t-il un lien à partager?

1
clockwiseq

Je ne sais pas si nous sommes autorisés à faire un lien vers d'autres réponses, mais il y a une autre question très similaire à la vôtre et le répondeur accepté a déclaré ce qui suit:

Vous devriez vous méfier de quiconque affirmant qu'il existe un seul "bon" moyen. La bonne façon dépend de la situation. L'utilisation de l'infrastructure CPT présente un certain nombre d'avantages notables:

  • Vous obtenez gratuitement l'interface utilisateur du tableau de bord
  • Vous tirez automatiquement parti de la mise en cache de WP, y compris de tous les plug-ins de cache persistant que l'installation peut utiliser.
  • Vous obtenez automatiquement des goodies comme des révisions post
  • Vous avez accès à la classe WP_Query, ce qui signifie qu'en théorie, vous n'avez pas à écrire de code SQL (ou du moins pas beaucoup) susceptible d'être bogué, vulnérable et inefficace.

Si vous envisagez de distribuer le plug-in ou de l'ouvrir pour un développement à source ouverte, vous constaterez peut-être que les développeurs sont plus à l'aise avec les types de publication personnalisés et les fonctions API associées que vos propres éléments personnalisés.

source: ici

2
Androliyah

S'il existe plus d'une ou deux méta liées à votre type de publication personnalisée, possibilité (ou nécessité) de recherches utilisateur complexes basées sur ces données personnalisées, puis sur table personnalisée. Sinon, les jointures complexes effectuées sur des méta-tables pour extraire des publications en interrogeant simultanément 2 ou 3 critères sur une méta-table ralentiront le site. Considérablement, basé sur les utilisateurs simultanés. Si vous avez environ 5 000 à 10 000 entrées de données de ce type, vous entrerez dans une requête d'enfer.

Si environ 1 ou 2 méta, OU, les recherches complexes de vos métadonnées ne seront pas complexes et qu'il ne sera pas nécessaire d'afficher les données de manière dynamique (vous pouvez les mettre en cache sans perte d'expérience de l'utilisateur).

Incidemment, vous pouvez également faire quelque chose d'assez différent, vous pouvez créer un tableau personnalisé pour refléter toutes vos entrées de publication avec ses métadonnées complexes dans une table plate et relationnelle et une fonction de recherche (ou d'autres fonctions nécessaires) pour effectuer la recherche. À partir de cette 'table de cache de recherche' personnalisée, puis lisez le jeu de résultats dans wp_posts et wp_postmeta. Vous pouvez également utiliser les tables wp pour des ensembles de données complexes et volumineux. Mais vous devrez alors détourner toute opération de requête problématique vers votre table de cache.

Je crois que le plugin de recherche populaire Relevanssi fait quelque chose comme ça - cache des posts complexes et des postmetas dans un tableau relationnel plat et extrait les résultats de la recherche à partir de là.

* correction - incorrecte: relevanssi ne crée pas de magasin de données pour une recherche plus rapide. Cela améliore simplement la qualité de la recherche.

Mais, à mon avis, cela est trop difficile. Allez simplement avec des tables séparées si vos données sont volumineuses et complexes.

1
unity100