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:
- Utwórz nowy niestandardowy typ posta („Spotkania”) za pomocą tej wtyczki.
- Dołącz dokładnie te pola niestandardowe, które chcesz, do tego CPT (data, godzina, miejsce itp.).
- Opublikuj!
Stawiamy has_archive
na true
naszej 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:
- Wyświetlaj wszystkie potrzebne informacje, tak jak tego chcemy.
- Wyświetlaj nadchodzące spotkania w kolejności dat.
- 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.