web-dev-qa-db-fra.com

Structure taxonomique du site Sport

J'ai du mal à comprendre comment structurer un site. Le site est un site de nouvelles pour 3 sports différents mais liés: le skateboard, le snowboard et le surf. Chaque sport est généralement associé à des athlètes, des noms d’événements, des lieux, des marques, des photographes, des réalisateurs de films et des figures.

La plupart du temps, nous publions des nouvelles sur ces sports au moyen d'articles, de photos et de vidéos. Mon objectif est de pouvoir extraire des données de ces publications et de les présenter sur des pages regroupées avec des données similaires.

Un exemple: nous avons écrit un article sur Tony Hawk (athlète de planche à roulettes) réalisant le tout premier 900 (Skateboard Trick). Nous aimerions que cet article soit répertorié sur une page intitulée Skaters (athlètes de skateboard) où tous les patineurs sont répertoriés dans un ordre alphabétique, où Tony Hawk a sa propre section dans la catégorie skateboard et pour que le même article soit répertorié sur une page. appelé Tricks avec d’autres 900 et d’autres astuces de skateboard. Mais l'article ne peut pas être répertorié sous par exemple. Des astuces de snowboard ou des astuces de surf.

La méthode que j'ai définie est que j'ai créé 3 types de publication personnalisés pour chaque sport et des étiquettes personnalisées sous chaque sport pour les athlètes, les noms des événements, les lieux, les marques, les photographes, les réalisateurs de films et les figures, ce qui signifie qu'il existe par exemple. 3 tags différents pour les Tricks (Skateboard Tricks, Snowboard Tricks et Surf Tricks).

Cependant, je me suis rendu compte que si je suivais ce système plus loin, il me faudrait 3 types de publications personnalisées pour les galeries d'images, 3 types de publications personnalisées pour les événements, etc., ce qui rend l'administrateur très peu convivial.

L’autre solution consisterait à mettre en place un système de catégories hiérarchique, par exemple skateboard est une catégorie parente, Skateboard Astuce est une catégorie enfant et les différents noms de trucs sont des catégories de grands enfants. Toutefois, à ma connaissance, cela créerait une longue liste de catégories dans lesquelles choisir dans chaque publication.

La meilleure chose à faire serait que je puisse créer une relation entre les balises personnalisées et les catégories enfants, au lieu d'une relation entre les balises personnalisées et les types de publication personnalisés, mais je comprends que ce n'est pas pour wordpress.

Ma question est donc la suivante: quelle est la meilleure structure pour mon site? Des idées plus conviviales?

2
Bjeff

Je pense que vous avez quelque peu mal interprété les post-types personnalisés et les taxonomies personnalisées.

Théorie

Types de messages personnalisés

Je considère que le but d'un post-type personnalisé est le format de données distinctes - il décrit un type de contenu, mais pas le contenu lui-même. Prenez les types page, post et attachment intégrés, par exemple:

  • Le type de poste page décrit le format d'une page statique générique sur un site Web, qui peut être organisée en une hiérarchie à l'aide de parents.
  • Le type post décrit le contenu actuel pouvant être organisé avec des catégories et des balises reflétant la nature du contenu lui-même et mettant généralement l'accent sur la communauté avec des commentaires. Les publications sont également publiées dans des flux RSS pour que les visiteurs puissent digérer en externe.
  • Le post-type attachment décrit un fichier multimédia associé à l'un des post-types susmentionnés.

Cela n'aurait pas de sens de publier le contenu "About Us" sous la forme post (la chronologie de ) lorsque le contenu publié n'est pas pertinent, et il est inhabituel d'avoir une section de commentaires sur un tel contenu statique. contenu), et il ne serait pas non plus logique de publier un reportage sous forme de page (il est important lors de la publication du récit et il serait utile d'utiliser des taxonomies pour décrire le type de récit qu'il s'agit). Aucune partie du contenu ne peut raisonnablement être publiée en tant que attachment.

Il serait encore plus étrange de créer un type de message unique pour chaque élément de contenu statique (un type de message "À propos de nous", un type de message "Contactez-nous", un type de message "Politique de confidentialité", etc.). chaque contenu peut être décrit dans un format identique .

Toutes les données pertinentes pour un post-type personnalisé sont le plus souvent stockées et accessibles via l'API de métadonnées , ce qui vous permet de joindre des informations personnalisées aux publications.

Taxonomies Personnalisées

Une taxonomie n'est rien de plus qu'une méthode de regroupement d'éléments. En pratique, vous pouvez utiliser des taxonomies pour organiser des variétés de contenu ou pour refléter certains aspects du contenu, que ce contenu soit décrit avec le même type d'article ou avec des types différents.

Un site répertoriant des émissions de télévision et des films peut avoir un type de message personnalisé pour les deux (une émission de télévision épisodique étant décrite d’une manière différente de celle décrite pour un film), mais les entrées de l’un ou de l’autre pourraient être classées selon la même taxonomie genre ou "termes" contenant des éléments tels que "science-fiction", "horreur", "action", etc.).


Application

Le hockey, le basketball et le football sont par définition un type de sport et peuvent donc être décrits dans le même format que n'importe quel sport (un nom, un jeu de règles, une histoire, etc.). Par conséquent, vous devez créer un seul type de message personnalisé sport et créer trois entrées individuelles du type de message sport pour représenter chaque sport.

Dans la même logique, il va de soi qu'un seul type de poste athlete englobera suffisamment de participants dans tous les sports et qu'un seul type de poste event traitera de tout événement pour tout sport, athlète, etc.

sports pourrait être organisé avec une taxonomie décrivant le type de sport - "sport de spectateur", "sport d'équipe", "sport de compétition", "sport amateur", "sport aquatique", "sport professionnel", etc. votre application c'est inutile.

Les événements sont organisés (ou regroupés) par lieu. Il est donc logique d’avoir une taxonomie location qui s’applique au type event. Il peut être hiérarchisé par géographie (termes d'état ou de province ayant des termes de ville comme enfants, par exemple) - vous permettant d'interroger des événements par ville ou région - ou simplement de niveau plat, comme une balise.

Les épreuves et les athlètes peuvent être organisés en fonction du sport auquel ils sont associés. Il est donc logique qu’en plus du CPT sport, une taxonomie sport soit créée (et ne soit pas appliquée au _sport CPT. Alternativement, le L’API de métadonnées peut être utilisée pour associer des éléments à l’entrée sports CPT correspondante.

Cependant , d'après votre description, il semble que vous ne souhaitiez décrire aucun des sports présentés sur votre site. Vous n'avez pas besoin de pages décrivant en détail les aspects d'un sport indépendant de les gens, les lieux et les événements qui s'y rapportent. En conséquence, il serait plus logique de ne pas avoir de CPT sport, et seulement une taxonomie sport, vous permettant de grouper athletes et events par sport respectif.

Résumé

Je crois que la meilleure façon d'organiser votre contenu est la suivante:

  • Taxonomies personnalisées
    • sports
    • locations
  • Post-types personnalisés
    • athlete - utilise la taxonomie sport
    • event - utilise les taxonomies sport et location

Une requête avec les arguments suivants renvoie la page d'archive contenant tous les athlètes participant au football:

$args[ 'post_type' ] = 'athlete';
$args[ 'tax_query' ] = array(
  'taxonomy' => 'sport',
  'terms'    => 'football'
);

Cette requête est toujours disponible à l'URL

/?post_type=athlete&taxonomy=sport&terms=football

La façon dont cela se traduit par un joli permalien dépend de vos paramètres permalien et des slugs que vous avez choisis.

3
bosco