Niestandardowe pola wejściowe w administracji – niestandardowe meta pola

Kilka dni temu w Koszycach odbyło się kolejne spotkanie entuzjastów WordPressa – developerów. Spotkaliśmy się w Halmi caffe , tym razem również z tematem „Niestandardowe metaboxy”.

Przyjrzeliśmy się trzem sposobom tworzenia własnych pól wejściowych w administracji WP i dodaliśmy niektóre z naszych własnych doświadczeń, typów i generatorów podczas dyskusji. Zaczęliśmy od wykorzystania klasycznych funkcji WordPress i opisu w dokumentacji, kontynuowaliśmy demonstracje w oparciu o wtyczki Advanced Custom Fields i CMB2. Kilka kodów źródłowych na końcu artykułu 😉

Te pola wejściowe mogą być wykorzystane do specjalnych wartości, które chcemy przetwarzać i wyświetlać na stronie, w artykule, profilu, produkcie itp.

Zgodnie z dokumentacją WordPress

Zasadniczo WordPress ma świetne funkcje, które pozwalają nam dostosować go do naszych upodobań. Jednym z nich jest add_meta_box() , którego używamy do tworzenia własnego pola wejściowego.

add_meta_box()

Zgodnie z wprowadzonymi parametrami możemy określić, w której części wpisu ma się znajdować pole edycji, a także dla jakiego typu wpisu będzie ono używane (artykuł, strona, profil…). Jednak funkcja utworzy tylko dla nas pole. Nadal musisz zapisywać jego wartość za każdym razem, gdy zapisujesz post i ładujesz go, gdy próbujesz go edytować. Zainspirowało nas kompleksowe rozwiązanie, które znaleźliśmy w komentarzach pod dokumentacją.

Wartość tego pola wejściowego jest przechowywana w bazie danych w tabeli postmeta (lub usermeta itp. w zależności od typu postu) w wierszu wraz z identyfikatorem postu i kluczem meta (służy do rozróżniania kilku typów wartości za jedno stanowisko).

W celu dalszego przetwarzania lub bezpośredniego wyświetlenia wartości na stronie, pobieramy tę wartość z bazy danych za pomocą funkcji get_post_meta() .

get_post_meta()

W szczególności na przykład w następujący sposób:

<?php echo get_post_meta( get_the_ID(), '_my_meta_value_key', true ); ?>

Przykładowy wynik na stronie:

 

Korzystanie z wtyczki Advanced Custom Fields

Ta wtyczka ma tę zaletę, że można dosłownie kliknąć pola wejściowe w jej interfejsie.

Advanced Custom Fields

Dodatkowym atutem jest obszerna dokumentacja i bez konieczności długiego programowania możemy tworzyć pola wejściowe dla galerii, mapy, daty i czasu itp.

Jednak w bazie danych trochę przesadza. Definiując w nim najpierw pola wejściowe, zapisuje je jako posty (w tabeli postów ), a następnie przechowuje wartości (np. pozycję pola wejściowego w edycji) w postsmeta . Zapisując edycje strony, zapisał nam jeszcze dwa wiersze w bazie danych dla jednego pola wejściowego. Kiedy wersja została automatycznie zapisana, były jeszcze dwie.

Nie używamy wtedy klasycznej funkcji WP (get_post_meta) do wyświetlania wartości, ale funkcję wtyczki, na przykład:

<?php the_field('acf1'); ?>

Zgodnie z dokumentacją możemy również użyć shortcode i wyświetlić wartości w tekście artykułu.

Korzystanie z wtyczki CMB2

Ta wtyczka nie ma już ustawień „kliknięcia”, do jakich jesteśmy przyzwyczajeni.

CMB2

Zawiera wstępnie zbudowane klasy i obiekty, których można użyć do tworzenia niestandardowych pól wejściowych, które znacznie ułatwiają pisanie kodu. Znajdziemy do niego obszerną dokumentację i podobnie jak ACF ułatwia tworzenie pól dla różnych typów wartości (data, godzina, kolor itp.).

Chciałbym zwrócić uwagę na możliwość dodania kolejnego edytora tekstu w połączeniu z repeaterem (grupą), dzięki czemu możemy wyróżnić fragmenty tekstu na stronie, później zmienić ich kolejność i tym podobne. Dostępne są również inne bezpłatne rozszerzenia dla tej wtyczki.

Przechowuje wartości w bazie danych za pomocą jednej linii i wykorzystuje do ich przetwarzania klasyczną funkcję WP (przykład):

<?php echo get_post_meta( get_the_ID(), '_yourprefix_text', true ); ?>

Generatory

 

To niektóre z generatorów wspomnianych na spotkaniu. Generują kod, który działa z podstawowymi funkcjami WP, bez dodatkowych wtyczek.

Przykładowy kod używany do meetupe

Pakiety obejmują:

  • plugin, w którym znajdują się przykłady klasycznych funkcji WP i wykorzystania CMB2 (do poprawnej funkcjonalności wymaga aktywowanej wtyczki CMB2)
    • po prostu aktywuj wtyczkę, a nowe pola wejściowe pojawią się w edycji strony
  • motyw „testowy”, który jest motywem pochodnym Twentyfifteen (do poprawnego działania konieczne jest posiadanie zainstalowanego motywu Twentyfifteen )
    • zawiera szablony stron z kodami do wyświetlania przechowywanych wartości

test-szablon.zip

funkcje-rozszerzenia.zip

 

 

WordPress Návod v PDF

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj