# 136: Przenoszenie rzeczy do CMS zgodnie z potrzebami - CSS-Tricks

Anonim

W tym filmie opowiadam o konkretnej sytuacji w „prawdziwym świecie”, w której brałem udział w obchodzeniu się ze stroną CodePen Meetups.

Na samym początku spotkania CodePen Meetups zaplanowaliśmy tylko jeden. Miał to być pierwszy w historii CodePen Meetup w Austin w Teksasie. Zrobiłem więc dla niego stronę jako część głównej witryny CodePen (projekt Rails) pod adresem URL / meetups /. Tam mogłem to zaprojektować tak, jak chciałem. Zastanawiałem się, jakie informacje powinny znaleźć się na tej stronie i jak je przedstawić. (Na filmie wykopaliśmy kopię witryny w tym czasie za pośrednictwem stron buforowanych (zrzut ekranu)).

Czas mijał. Dodałem do niego kilka spotkań i forma wyświetlania wielu spotkań na stronie nabrała kształtu. Dowiedziałem się, jakie fragmenty informacji są wspólne dla wszystkich spotkań i jak to pokazać. W tym samym czasie aktualizacje stawały się nudne. Dodawanie nowych to praca. Łatwo zapomnieć o usunięciu starych. I to trochę do bani samo usuwanie HTML w ten sposób, wiedząc, że są to potencjalnie przydatne informacje, które niszczysz. Po prostu edytowałem tutaj szablon HTML.

Nadszedł czas, że naprawdę trzeba to usystematyzować i przenieść do systemu zarządzania treścią. Na szczęście ruch był dość łatwy, ponieważ wiedziałem dokładnie, czego potrzebuję i wiedziałem, że mam narzędzia, aby to zrobić. Rzeczywiście robiliśmy to już kilka razy. Na przykład tutaj i tutaj.

Przychodzi coś takiego:

  1. Utwórz nowy niestandardowy typ posta („Spotkania”) za pomocą tej wtyczki.
  2. Dołącz dokładnie te pola niestandardowe, które chcesz, do tego CPT (data, godzina, miejsce itp.).
  3. Opublikuj!

Stawiamy has_archivena truenaszej CPT, więc dostaliśmy URL / spotkania osobiste / za darmo, który korzysta z szablonu `Archiwum-meetups.php` automatycznie. Musieliśmy jednak wykonać poważne prace niestandardowe na tym szablonie, ponieważ musieliśmy:

  1. Wyświetlaj wszystkie potrzebne informacje, tak jak tego chcemy.
  2. Wyświetlaj nadchodzące spotkania w kolejności dat.
  3. Automatycznie przenoś stare spotkania do sekcji „Wcześniejsze spotkania”.

Wszystko całkowicie wykonalne. Najpierw zapytajmy o spotkania, które chcemy (po dzisiejszej dacie). Robimy to, uruchamiając niestandardowe zapytanie obejmujące odpowiednie pole niestandardowe

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

Tworzenie pól niestandardowych jest bardzo łatwe dzięki zaawansowanym polom niestandardowym. Daje ci funkcję, której możesz użyć w ten sposób, po prostu nazwij pole:

Po prostu umieściliśmy taki wynik w istniejącym HTML, którego używaliśmy już w tym nowym szablonie. Następnie uruchamiamy kolejną pętlę, tylko z odwróconym porównaniem dat, dla poprzednich spotkań.

Nie ma tu nic naprawdę odkrywczego, po prostu ekscytuję się takimi rzeczami, ponieważ:

  • Wydaje się bardzo produktywne, jak na tak małą ilość pracy (zrobiłem to jednej nocy leżąc na kanapie).
  • Mogę to zrobić bez zgłaszania błędów zespołowi, aby opracować coś wymyślnego, mogę to zrobić dzięki moim umiejętnościom programisty front-end. (Uważam, że majsterkowanie przy motywach WordPress i podstawowych funkcjach jest umiejętnością front-end).

Oczywiście WordPress nie jest do tego wymagany. Jestem pewien, że jest to możliwe w każdym CMS. To właśnie są CMS. Po prostu lubię i najlepiej znam WordPressa.