# 136: Mutarea lucrurilor la un CMS după cum este necesar - CSS-Tricks

Anonim

În acest videoclip, vorbesc despre o anumită situație din „lumea reală” în care am participat la modul în care gestionez pagina CodePen Meetups.

Încă de la începutul întâlnirilor CodePen, am avut doar unul planificat. Avea să fie primul MeetP CodePen din Austin, Texas. Așa că am creat o pagină pentru aceasta ca parte a site-ului principal CodePen (un proiect Rails) la adresa URL / meetups /. Acolo, a trebuit să-l proiectez cum am vrut. Îmi dădeam seama ce fel de informații trebuie să fie pe acea pagină și cum să le prezint. (În videoclip, am dezgropat o copie a site-ului la acel moment, prin Pagini cache (captură de ecran)).

Timpul a trecut. I-am adăugat câteva întâlniri și s-a conturat forma de afișare a mai multor întâlniri pe pagină. Mi-am dat seama ce informații erau comune în toate întâlnirile și cum să le arăt. În același timp, actualizările deveneau obositoare. Adăugarea altora noi este lucru. Este ușor să uitați să le eliminați pe cele vechi. Și este cam cam șters ștergând HTML așa, știind că sunt informații potențial utile pe care le distrugeți. Tocmai am editat un șablon HTML aici.

A sosit momentul ca acest lucru să fie într-adevăr sistematizat și mutat într-un sistem de gestionare a conținutului. Din fericire, mișcarea a fost destul de ușoară, deoarece știam exact de ce aveam nevoie și știam că am instrumente pentru a o pune în mișcare. De fapt, am făcut de mai multe ori acest gen de lucruri. De exemplu aici și aici.

Vine ceva de genul acesta:

  1. Creați un nou tip de postare personalizată („Meetup-uri”) cu acest plugin.
  2. Atașați exact câmpurile personalizate dorite la acel CPT (data, ora, locul de desfășurare etc.).
  3. Publică departe!

Am stabilit has_archivesa truepentru CPT nostru, așa că am primit URL / Meetups / pentru gratuit, care folosește automat șablonul `arhiva-meetups.php`. Totuși, trebuia să facem lucrări personalizate serioase pe acel șablon, deoarece trebuia:

  1. Afișați toate informațiile de care aveam nevoie, exact cum le dorim.
  2. Afișați întâlnirile viitoare în ordinea datei.
  3. Mutați automat întâlniri vechi într-o secțiune „Întâlniri anterioare”.

Toate total realizabile. Mai întâi să interogăm întâlnirile dorite (după data de astăzi). Facem asta executând o interogare personalizată care implică câmpul personalizat adecvat

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

Afișarea câmpurilor personalizate este foarte ușoară cu câmpurile personalizate avansate. Vă oferă o funcție pe care o puteți utiliza astfel, numiți doar câmpul:

Tocmai am pus acest tip de ieșire în codul HTML existent pe care îl foloseam deja în acest nou șablon. Apoi vom rula o altă buclă, numai cu comparație inversă a datei, pentru întâlnirile anterioare.

Nimic extrem de revelator aici, doar mă entuziasmez de acest gen de lucruri pentru că:

  • Se simte extrem de productiv, pentru o cantitate atât de mică de muncă (am făcut-o în timp ce așezam pe canapea într-o noapte).
  • Îl pot face fără a fi nevoie să pun la cap echipa pentru a dezvolta ceva de lux, îmi pot folosi abilitățile de dezvoltator front-end pentru a face acest lucru. (Consider că lucrul cu temele WordPress și funcționalitatea de bază este o abilitate front-end).

Și, desigur, WordPress nu este necesar pentru asta. Sunt sigur că este posibil în orice CMS. Asta sunt CMS-urile. Îmi place și cunosc WordPress cel mai bine.