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?
Je pense que vous avez quelque peu mal interprété les post-types personnalisés et les taxonomies personnalisées.
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:
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.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.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.
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.).
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.
sport
s 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.
Je crois que la meilleure façon d'organiser votre contenu est la suivante:
sports
locations
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.