web-dev-qa-db-fra.com

Custom Post Type “Event”: liste chronologique des événements récurrents

je cherche un moyen simple et efficace d’obtenir un type de message personnalisé "événement" pouvant comporter plusieurs dates. (J'ai testé environ 20 plugins). Je pense que je n'ai aucun problème à construire une metabox permettant à l'utilisateur de dupliquer plusieurs fois le groupe de champs "date et heure". Mais à quoi ressemblerait une requête qui créerait une liste chronologique d'événements à partir des métadonnées?

(Le projet est un calendrier de jeu pour un théâtre. Les productions jouent à plusieurs dates.) Merci!

3
Christoph

Voici un plan:

  1. Stocker les dates sous forme de champs personnalisés individuels avec la même méta_key (ex: start_date)
  2. JOIGNEZ la table wp_posts avec la table wp_postmeta, sans un GROUP BY (pour permettre au même événement d'apparaître plus d'une fois)
  3. ORDER BY date_début

La requête complète ressemblerait à ceci:

SELECT wp_posts.*, meta_value AS start_date
FROM wp_posts INNER JOIN wp_postmeta ON (ID = post_ID)
WHERE post_type = 'event'
AND post_status = 'publish'
AND meta_key = 'start_date'
ORDER BY start_date

PS: Cela nécessite que vous stockiez la date au format AAAA-MM-JJ, ce que vous devriez faire quand même, pour la compatibilité avec mysql2date (), etc.

4
scribu