In questo video, parlo di una particolare situazione del "mondo reale" in cui mi trovavo coinvolgendo il modo in cui gestisco la pagina Meetup di CodePen.
All'inizio dei Meetup di CodePen, ne avevamo solo uno in programma. Doveva essere il primo Meetup CodePen ad Austin, in Texas. Quindi ho creato una pagina per esso come parte del sito Web principale di CodePen (un progetto Rails) all'URL / meetups /. Lì, ho avuto modo di progettarlo come volevo. Stavo cercando di capire che tipo di informazioni dovevano essere su quella pagina e come presentarle. (Nel video, abbiamo recuperato una copia del sito in quel momento, tramite Cached Pages (screenshot)).
Il tempo è passato. Ho aggiunto alcuni meetup e ha preso forma la forma di visualizzazione di più meetup sulla pagina. Ho capito quali informazioni erano comuni a tutti i meetup e come dimostrarlo. Allo stesso tempo, gli aggiornamenti stavano diventando noiosi. Aggiungerne di nuovi è un lavoro. È facile dimenticare di rimuovere quelli vecchi. E fa schifo semplicemente eliminare HTML in questo modo, sapendo che sono informazioni potenzialmente utili che stai distruggendo. Stavo semplicemente modificando un modello HTML qui.
È arrivato il momento in cui questo doveva davvero essere sistematizzato e spostato in un sistema di gestione dei contenuti. Fortunatamente, la mossa è stata abbastanza semplice, poiché sapevo esattamente di cosa avevo bisogno e sapevo di avere gli strumenti per farcela. In realtà abbiamo già fatto questo genere di cose diverse volte. Ad esempio qui e qui.
Arriva qualcosa del genere:
- Crea un nuovo tipo di post personalizzato ("Meetup") con questo plug-in.
- Allega esattamente i campi personalizzati che desideri a quel CPT (data, ora, luogo, ecc.).
- Pubblica via!
Abbiamo impostato has_archive
a true
per il nostro CPT, così abbiamo ottenuto l'URL / meetup / gratis, che utilizza automaticamente il modello `dell'archivio-meetups.php`. Tuttavia, dovevamo fare un serio lavoro personalizzato su quel modello, poiché dovevamo:
- Mostra tutte le informazioni di cui avevamo bisogno proprio come le vogliamo.
- Visualizza i prossimi incontri in ordine di data.
- Sposta automaticamente i vecchi meetup in una sezione "Meetup precedenti".
Tutto totalmente fattibile. Per prima cosa cerchiamo i meetup che vogliamo (dopo la data odierna). Lo facciamo eseguendo una query personalizzata che coinvolge il campo personalizzato appropriato
'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(); ?>
L'output di campi personalizzati è molto semplice con Advanced Custom Fields. Ti dà una funzione che puoi usare in questo modo, basta nominare il campo:
Abbiamo semplicemente inserito quel tipo di output nell'HTML esistente che stavamo già utilizzando in questo nuovo modello. Quindi eseguiamo un altro ciclo, solo con il confronto delle date inverso, per i meetup precedenti.
Niente di estremamente rivelatore qui, sono solo entusiasta di questo genere di cose perché:
- È molto produttivo, per una quantità di lavoro così ridotta (l'ho fatto sdraiato sul divano una notte).
- Posso farlo senza bisogno di disturbare il team per sviluppare qualcosa di stravagante, posso usare le mie capacità di sviluppatore front-end per farlo. (Considero armeggiare con i temi di WordPress e le funzionalità di base un'abilità di front-end).
E, naturalmente, WordPress non è richiesto per questo. Sono sicuro che sia possibile in qualsiasi CMS. Ecco cosa sono i CMS. Mi piace e conosco meglio WordPress.