web-dev-qa-db-fra.com

Comment utiliser les taxonomies personnalisées pour référencer des relations complexes?

Je travaille sur un site qui hébergera en partie des informations sur des produits sur lesquels de nombreuses personnes ont travaillé dans différents rôles. J'aimerais que les personnes, les projets sur lesquels ils ont travaillé et leurs rôles dans les projets puissent être interrogés à l'aide de taxonomies personnalisées. Les projets et les personnes sont des types de publication personnalisés.

Prenons un film à titre d'exemple. Ce n’est pas le but du site, mais le problème est exactement le même:

  • Alice a travaillé sur Big Movie en tant que réalisateur et producteur.
  • Bob a travaillé sur Big Movie en tant qu'acteur.
  • Carl a travaillé sur Big Movie en tant que scénariste.
  • David a travaillé sur Big Movie en tant que scénariste.

Je veux pouvoir rechercher tous les réalisateurs, toutes les personnes liées à Big Movie , et rechercher tout ce sur quoi Alice a travaillé (et Bob, et Carl, etc.).

Jusqu'ici, j'ai simplement feuilleté le codex et ma pensée est d'avoir une taxonomie hiérarchique "Personnes" associée au type de message. Chaque entrée aura deux niveaux:

  • Rôle
    • Prénom

Ainsi, la taxonomie "People" de Big Movie pourrait ressembler à ceci:

  • Producteur
    • [ID de la personne d'Alice]
  • Réalisateur
    • [ID de la personne d'Alice]
  • Écrivain
    • [Identifiant de la personne de Carl]
    • [ID de la personne de David]
  • Acteur
    • [Identifiant de la personne de Bob]

Existe-t-il un moyen plus efficace ou plus efficace d’associer des publications de personnes à leurs rôles sur des projets particuliers ? Cette approche résout-elle réellement le problème et permet-elle de rechercher efficacement des personnes en fonction de leurs rôles respectifs, de leurs rôles respectifs dans des projets particuliers et des projets particuliers sur lesquels elles ont travaillé?

1
jeremiahs

Les taxonomies ne sont probablement pas la meilleure option: il n'y a toujours pas de table pour les métadonnées de terme , et si vous utilisez un type de publication personnalisé people plus une taxonomie de du même nom, vous aurez du mal à tout synchroniser.

Installez le plugin Posts 2 Posts , enregistrez une connexion entre people et movies:

function connect_people_movies() 
{
    p2p_register_connection_type( 
        array(
            'name' => 'people_movies',
            'from' => 'people',
            'to' => 'movies'
    ) 
    );
}
add_action( 'p2p_init', 'connect_people_movies' );

Voir le wiki du plugin pour plus d’instructions et d’exemples.

1
fuxia