I den här videon pratar jag om en speciell ”verklig värld” -situation som jag var med om hur jag hanterar sidan CodePen Meetups.
I början av CodePen Meetups hade vi bara en enda planerad. Det skulle bli den första CodePen Meetup någonsin i Austin, Texas. Så jag skapade en sida för den som en del av den huvudsakliga CodePen-webbplatsen (ett Rails-projekt) på URL / meetups /. Där fick jag designa hur jag ville. Jag förstod vilken typ av information som behövde finnas på den sidan och hur jag skulle presentera den. (I videon grävde vi upp en kopia av webbplatsen vid den tiden, via Cachade sidor (skärmdump)).
Tiden gick. Jag lade till några möten till det, och formen för att visa flera möten på sidan tog form. Jag tänkte ut vilka bitar av information som var vanligt bland alla möten och hur man visar det. Samtidigt blev uppdateringarna tråkiga. Att lägga till nya är arbete. Det är lätt att glömma bort gamla. Och det suger bara att ta bort HTML så, med vetskap om att det är potentiellt användbar information du förstör. Jag redigerade precis en HTML-mall här.
Tiden kom att detta verkligen behövde systematiseras och flyttas till ett Content Management System. Lyckligtvis var flytten ganska lätt, eftersom jag visste exakt vad jag behövde och jag visste att jag hade verktyg för att dra av det. Vi har faktiskt gjort den här typen av saker tidigare flera gånger. Till exempel här och här.
Det kommer ungefär så här:
- Skapa en ny anpassad inläggstyp ("Meetups") med detta plugin.
- Bifoga exakt de anpassade fälten du vill ha till CPT (datum, tid, plats osv.).
- Publicera bort!
Vi ställde has_archive
in true
för vår CPT, så vi fick URL / meetups / gratis, som använder mallen `archive-meetups.php` automatiskt. Vi var tvungna att göra seriöst anpassat arbete på den mallen, eftersom vi var tvungna att:
- Visa all information vi behövde precis hur vi vill ha den.
- Visa kommande möten i datumordning.
- Flytta gamla möten automatiskt till avsnittet "Tidigare möten".
Allt helt genomförbart. Låt oss först fråga efter de möten vi vill ha (efter dagens datum). Vi gör det genom att köra en anpassad fråga som involverar rätt anpassat fält
'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(); ?>
Att skriva ut anpassade fält är väldigt enkelt med avancerade anpassade fält. Det ger dig en funktion du kan använda så här, bara namnge fältet:
Vi lade bara den typen av utdata i den befintliga HTML som vi redan använde i den här nya mallen. Sedan kör vi en annan slinga, bara med omvänd datumjämförelse, för tidigare möten.
Inget enormt avslöjande här, jag blir bara upphetsad över den här typen av saker för:
- Det känns mycket produktivt för så lite arbete (jag gjorde det medan jag låg på soffan en natt).
- Jag kan göra det utan att behöva bugga teamet för att utveckla något snyggt, jag kan använda mina avancerade utvecklarfärdigheter för att göra det. (Jag anser att tinkering med WordPress-teman och grundläggande funktionalitet är en front-end-skicklighet).
Och naturligtvis krävs inte WordPress för detta. Jag är säker på att det är möjligt i alla CMS. Det är vad CMS är. Jag gillar och känner bara WordPress bäst.