# 136: Flytning af ting til et CMS efter behov - CSS-tricks

Anonim

I denne video skvælter jeg om en bestemt “rigtig verden” -situation, jeg var i, hvordan jeg håndterer CodePen Meetups-siden.

I begyndelsen af ​​CodePen Meetups havde vi lige planlagt en enkelt. Det skulle være det første nogensinde CodePen Meetup i Austin, Texas. Så jeg lavede en side til det som en del af CodePen-webstedet (et Rails-projekt) på URL / meetups /. Der fik jeg til at designe det, men jeg ville. Jeg fandt ud af, hvilken slags information der skulle være på den side, og hvordan jeg kunne præsentere den. (I videoen gravede vi en kopi af webstedet på det tidspunkt gennem Cached Pages (skærmbillede)).

Tiden gik. Jeg tilføjede et par møder til det, og formen for at vise flere møder på siden tog form. Jeg fandt ud af, hvilke informationsstykker der var almindelige blandt alle møder, og hvordan man kunne vise det. På samme tid blev opdateringer kedelige. Tilføjelse af nye er arbejde. Det er let at glemme at fjerne gamle. Og det er lidt suger bare at slette HTML sådan, vel vidende at det er potentielt nyttig information, du ødelægger. Jeg var lige lige ved at redigere en HTML-skabelon her.

Tiden kom, at dette virkelig skulle systematiseres og flyttes ind i et Content Management System. Heldigvis var flytningen ret let, da jeg vidste nøjagtigt, hvad jeg havde brug for, og jeg vidste, at jeg havde værktøjer til at trække det af. Vi har faktisk gjort denne slags ting før flere gange. For eksempel her og her.

Det kommer sådan her:

  1. Opret en ny brugerdefineret posttype ("Meetups") med dette plugin.
  2. Vedhæft nøjagtigt de brugerdefinerede felter, du vil have til CPT (dato, tid, sted osv.).
  3. Publicer væk!

Vi satte has_archivetil truefor vores CPT, så vi fik URL / meetups / gratis, som bruger skabelonen `arkiv-meetups.php` automatisk. Vi var nødt til at udføre seriøst brugerdefineret arbejde på denne skabelon, da vi skulle:

  1. Vis alle de oplysninger, vi havde brug for, lige hvordan vi vil have det.
  2. Vis kommende møder i dato rækkefølge.
  3. Flyt automatisk gamle møder til afsnittet "Tidligere møder".

Alle fuldstændigt gennemførlige. Lad os først spørge efter de møder, vi ønsker (efter dagens dato). Vi gør det ved at køre en brugerdefineret forespørgsel, der involverer det rigtige brugerdefinerede felt

 '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(); ?>

Det er meget nemt at udskrive brugerdefinerede felter med avancerede brugerdefinerede felter. Det giver dig en funktion, du kan bruge som denne, bare navngiv feltet:

Vi har lige lagt den slags output i den eksisterende HTML, vi allerede brugte i denne nye skabelon. Derefter kører vi en anden sløjfe, kun med omvendt datosammenligning, for de tidligere møder.

Intet enormt åbenbarende her, jeg bliver bare begejstret for denne slags ting, fordi:

  • Det føles meget produktivt til så lidt arbejde (jeg gjorde det, mens jeg lå på sofaen en nat).
  • Jeg kan gøre det uden at skulle bugge teamet for at udvikle noget fancy, jeg kan bruge mine front-end udviklerfærdigheder til at gøre det. (Jeg betragter tinkering med WordPress-temaer og grundlæggende funktionalitet som en front-end-færdighed).

Og selvfølgelig er WordPress ikke påkrævet til dette. Jeg er sikker på, at det er muligt i ethvert CMS. Det er, hvad CMS er. Jeg kan godt lide og kender WordPress bedst.