web-dev-qa-db-fra.com

Association d'un "auteur" à une taxonomie personnalisée

J'ai un rôle personnalisé, "Représentant du ministère", capable de se connecter, de créer et de gérer leurs propres "Opportunités" et "Événements", qui sont chacun un type de publication personnalisé.

Sur le front du site, vous pouvez filtrer les opportunités ou les événements par "Ministère", qui est une taxonomie personnalisée associée à la fois au type de publication personnalisé "Opportunités" et "Evénements".

Sur le backend, je crée un compte pour un "représentant du ministère" afin de gérer ce qui apparaît sur son profil ainsi que dans les résultats filtrés sur les pages d'index "Opportunités" et "Evénements".

Le défi

Lorsqu'un "représentant du ministère" crée un nouvel "événement", il entre les détails et, dans la taxonomie personnalisée, il doit choisir:

  • Lieu (une taxonomie personnalisée hiérarchique)
  • Présentateur (une taxonomie personnalisée non hiérarchique)
  • Ministère (une taxonomie douanière non hiérarchique)

Donc, en substance, ils doivent choisir eux-mêmes. John Doe, qui est un "représentant du ministère" pour "Ministère A", doit choisir son propre ministère dans une liste déroulante (une boîte à méta personnalisée via WP Alchemy).

La solution idéale

Idéalement, lorsqu'un nouvel "événement" ou "opportunité" est créé par John Doe de "ministère A", l'association est créée sans aucune entrée requise au niveau de l'interface par l'utilisateur final.

Donc, ce que jepense/ cherche, c’est un moyen d’associer un compte utilisateur à un terme spécifique dans une taxonomie personnalisée.

Cela a-t-il du sens? Y a-t-il, peut-être, une autre façon de regarder le problème? Comme je l'imagine, je pourrais voir d'autres applications qui pourraient rendre cela utile. Un compte est créé et lorsqu'un utilisateur X contribue à un type de contenu donné, des termes présélectionnés sont automatiquement associés au contenu fourni.

Toutes les pensées ou idées sont grandement appréciées. Je vous remercie!

3
Jonathan Wold

J'ai été capable de trouver un travail autour! Premièrement, j'ai utilisé Role Scoper pour limiter un compte d'utilisateur à un terme spécifique - dans ce cas, un représentant d'un ministère est limité au nom de son ministère dans la taxonomie "ministères". Ensuite, j'ai utilisé la classe WPAlchemy pour créer une métabox personnalisée qui listerait les termes et, puisqu'elle n'en renvoyait qu'un (le leur), je l'aurais déjà sélectionnée. Ensuite, je l'ai caché via une feuille de style d'administrateur.

En conséquence, lorsqu'un représentant du ministère crée un nouvel événement ou une nouvelle opportunité, son nom de ministère est déjà sélectionné (bien qu'il ne le voie pas) et l'association est créée lors de la sauvegarde. La mise en place du terme nécessite un peu de travail de la part des administrateurs, et j'aimerais quand même une méthode plus propre pour faire de même, s'il existe.

Si quelqu'un veut plus de détails sur mon travail, faites le moi savoir.

4
Jonathan Wold

Je pense que vous devriez utiliser usermeta pour accomplir cela. Par exemple, indiquez le "ministère" de l'utilisateur dans son profil (il s'agirait simplement d'une liste des termes de cette taxonomie) et enregistrez le tax_term_id en tant qu'utilisateur. De plus, vous devez créer un nouveau terme dans la taxonomie du présentateur, en utilisant user_login comme nom du terme pour garantir un terme unique par présentateur. Cependant, il n'est pas nécessaire de sauvegarder ce tax_term_id dans la clé utilisateur. L'emplacement peut également être défini à partir du profil et enregistré dans usermeta, mais il serait peut-être plus logique d'utiliser l'interface utilisateur par défaut utilisée par WordPress.

Une fois que tout est configuré, vous voudrez vous connecter à l'action 'save_post' pour vous assurer que tous ces termes sont appliqués à la publication telle qu'elle est enregistrée, etc.

Cela étant dit, je ne comprends pas pourquoi vous auriez besoin d'une taxonomie directement liée au présentateur, car vous pouvez déjà interroger l'auteur d'un message.

0
John P Bloch