Dans cette vidéo, je bavarde sur une situation particulière du «monde réel» dans laquelle j'étais en train d'impliquer comment je gère la page des Meetups CodePen.
Au tout début des Meetups CodePen, nous n'en avions qu'un seul prévu. Ce devait être le tout premier Meetup CodePen à Austin, au Texas. J'ai donc créé une page pour cela dans le cadre du site Web principal de CodePen (un projet Rails) à l'URL / meetups /. Là, j'ai pu le concevoir comme je le voulais. J'étais en train de déterminer quel type d'information devait figurer sur cette page et comment la présenter. (Dans la vidéo, nous avons déterré une copie du site à ce moment-là, via les pages en cache (capture d'écran)).
Le temps passait. J'y ai ajouté quelques rencontres et la forme d'affichage de plusieurs rencontres sur la page a pris forme. J'ai compris quels éléments d'information étaient communs à toutes les rencontres et comment le montrer. Dans le même temps, les mises à jour devenaient fastidieuses. En ajouter de nouveaux est un travail. Il est facile d'oublier de supprimer les anciens. Et ça craint de supprimer du HTML comme ça, sachant que ce sont des informations potentiellement utiles que vous détruisez. J'étais juste en train de modifier un modèle HTML ici.
Le moment est venu que cela devait vraiment être systématisé et transféré dans un système de gestion de contenu. Heureusement, le déménagement a été assez facile, car je savais exactement ce dont j'avais besoin et je savais que j'avais des outils pour y parvenir. Nous avons déjà fait ce genre de chose plusieurs fois auparavant. Par exemple ici et ici.
Cela vient quelque chose comme ça:
- Créez un nouveau type de publication personnalisé («Meetups») avec ce plugin.
- Attachez exactement les champs personnalisés que vous souhaitez à ce CPT (date, heure, lieu, etc.).
- Publiez!
Nous avons mis has_archive
à true
notre CPT, donc nous avons eu l'URL / meetups / gratuitement, qui utilise le modèle `archive meetups.php` automatiquement. Nous devions cependant effectuer un travail personnalisé sérieux sur ce modèle, car nous devions:
- Affichez toutes les informations dont nous avons besoin, comme nous le souhaitons.
- Afficher les rencontres à venir dans l'ordre des dates.
- Déplacez automatiquement les anciennes rencontres vers une section «Rencontres passées».
Tout est totalement faisable. Commençons par interroger les rencontres que nous voulons (après la date d'aujourd'hui). Nous faisons cela en exécutant une requête personnalisée impliquant le champ personnalisé approprié
'meetups', 'posts_per_page' => -1, 'meta_key' => 'date', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'date', 'compare' => '>=', 'value' => $today )) )); foreach ($myposts as $post) : setup_postdata($post); // The loop! Output stuff! endforeach; wp_reset_postdata(); ?>
La sortie de champs personnalisés est très simple avec les champs personnalisés avancés. Cela vous donne une fonction que vous pouvez utiliser comme ceci, nommez simplement le champ:
Nous avons simplement mis ce type de sortie dans le HTML existant que nous utilisions déjà dans ce nouveau modèle. Ensuite, nous exécutons une autre boucle, uniquement avec une comparaison de date inversée, pour les rencontres précédentes.
Rien de très révélateur ici, je suis juste excité par ce genre de chose parce que:
- C'est très productif, pour une si petite quantité de travail (je l'ai fait en étant allongé sur le canapé une nuit).
- Je peux le faire sans avoir besoin de déranger l'équipe pour développer quelque chose de sophistiqué, je peux utiliser mes compétences de développeur front-end pour le faire. (Je considère que bricoler avec les thèmes WordPress et les fonctionnalités de base est une compétence frontale).
Et bien sûr, WordPress n'est pas nécessaire pour cela. Je suis sûr que c'est possible dans n'importe quel CMS. C'est ce que sont les CMS. J'aime et connais le mieux WordPress.