✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Kompletna instrukcja dodawania grup i pól zaawansowanych niestandardowych pól według kodu

70

Wtyczka Advanced Custom Fields (ACF) obsługuje w pełni konfigurowanie pól i grup według kodu PHP w motywie lub wtyczce. Zaletą tego jest to, że wszystkie pola będą dostępne niezależnie od instancji WordPressa, nad którą pracujesz (na przykład, jeśli musisz przełączyć się między serwerem lokalnym, testowym i serwerem na żywo). Możesz ustawić wszystkie pola w panelu administracyjnym ACF i użyć narzędzia eksportu, aby wyeksportować je do PHP.

Kompletna instrukcja dodawania grup i pól zaawansowanych niestandardowych pól według kodu

Jednakże, jeśli robisz to często, możesz zauważyć, że eksport PHP z ACF zawiera dużo kodu, przez co twoje pliki PHP są niepotrzebnie długie. W niektórych przypadkach lepiej jest napisać kod samodzielnie, z niezbędnym minimum, aby uzyskać czystszy kod w motywie lub wtyczce. Ten przewodnik ma na celu dostarczenie kompletnych informacji o tym, jak ręcznie napisać dodawanie pól i grup ACF w PHP. Pamiętaj, że nie będzie on szczegółowo omawiał każdego typu pola, ponieważ zakłada, że ​​znasz już różne pola dostępne w ACF.

Ale najpierw; pewne środki ostrożności

Aby zachować dobre standardy kodu i zapewnić, że Twoja witryna WordPress nie ulegnie awarii, zawsze powinieneś sprawdzać, czy funkcje lub klasy, których używa Twój kod, rzeczywiście istnieją. Zwłaszcza jeśli chodzi o wtyczki, które można łatwo dezaktywować lub nawet nie instalować na stronie, zawsze powinieneś owinąć kod specyficzny dla wtyczki w teście if, który sprawdza, czy funkcje, z których korzystasz, istnieją, zanim ich użyjesz.

Jeśli chodzi o ACF, możesz to zrobić sprawdzając, czy klasa 'acf'istnieje lub czy istnieje funkcja dodawania pól i grup, 'acf_add_local_field_group'. Owiń jeden z nich wokół poniższego kodu.

if (function_exists('acf_add_local_field_group')) { // Your ACF specific code here } // OR: if (class_exists('acf')) { // Your ACF specific code here }

Kod szkieletu

Do dodawania meta pól (grup) i pól używamy haczyka o nazwie acf/init. Wewnątrz funkcji wywołujemy funkcję acf_add_local_field_group()z tablicą jako parametrem. Wewnątrz tej tablicy znajduje się kompletna konfiguracja grupy i wszystkich jej pól. Najważniejsze z nich to klucze tablicy 'fields'i 'location'. Dla klucza tablicy 'fields'podajesz tablicę dla wszystkich pól, a dla klucza 'location'podajesz ustawienia miejsca, w którym powinien pojawić się metabox. W tym poście szczegółowo omówimy możliwe opcje dla każdego z poniższych.

To jest absolutne minimum dodawania grupy, oprócz pól i lokalizacji:

Każda grupa potrzebuje unikalnego klucza, ale sama nazwa nie ma większego znaczenia (dla nas). Jeśli dodajesz więcej grup, nie zapomnij zmienić 'key'pola. Tytuł metaboksu można ustawić w elemencie klucza tablicy, zgadłeś, 'title'. Jeśli dodajesz wiele metaboksów w tej samej lokalizacji (np. podczas edycji postu), możesz kontrolować, która pozycja jest pierwsza, podając różne liczby w 'menu_order'.

Możesz kontrolować projekt metaboksu, podając albo defaulteller seamlessw 'style'. Jednak w przypadku nowego redaktora Gutenberga ma to znacznie mniejsze znaczenie. To samo dotyczy klucza 'position', w którym w dawnych czasach można było umieścić metabox pod treścią posta ('normal'), z boku ('side') lub tuż za tytułem posta ('acf_after_title').

W porządku! Zanurzmy się w dwóch bardziej interesujących elementach tablicy; zaczynając od lokalizacji – która określa, gdzie pojawia się metabox.

Lokalizacja

Chodzi o to, co wkładasz do klucza 'location'. Ale zanim przyjrzymy się możliwym opcjom, musimy zrozumieć strukturę jego tablicy.

'location'akceptuje tablicę z tablicą elementów w tablicy! Wstrzymać. Tak, ponieważ możliwe jest podanie i połączenie logiki AND i OR w lokalizacji (np. „pokaż w edycji posta, ale nie, jeśli typ posta to „książka"” lub „pokaż na ekranie edycji użytkownika, a także utwórz nowy ekran użytkownika, ale w obu przypadkach nie, jeśli aktualna rola to autor).

W ten sposób łączysz dwa elementy lokalizacji za pomocą logiki AND (obie muszą być prawdziwe):

A to jest do łączenia lokalizacji z logiką OR (tylko jedna musi być prawdziwa):

Zobacz różnicę?

OK, przejdźmy dalej. Każda opcja lokalizacji składa się z tablicy trzech elementów; 'param'gdzie dodajemy różne lokalizacje 'operator', i 'value'. Operator to sposób porównywania wartości i może być '=='równy lub '!='nierówny.

Przyjrzyjmy się kolejno możliwym opcjom.

Lokalizacja według typu postu

Ustaw żądany typ posta w 'value'. Pamiętaj, że nie możesz podać tablicy wielu typów postów, musisz połączyć wiele z tych tablic w konfiguracji AND.

Lokalizacja według statusu poczty

Ustaw żądany status posta jako 'value'. Ponownie, pamiętaj, że nie możesz podać tablicy wielu statusów postu, musisz podać każdą żądaną wartość w konfiguracji AND lub OR.

Lokalizacja według szablonu strony

Jest to widoczne tylko wtedy, gdy wybrana strona (lub niestandardowy typ postu z obsługą szablonów strony) wybrała podaną nazwę szablonu strony.

Lokalizacja według przypisanego terminu taksonomii

Ta lokalizacja jest przeznaczona, gdy post ma przypisany określony termin. Jako wartość musisz podać nazwę taksonomii, dwukropek i fragment terminu.

Lokalizacja według typu strony

ACF grupuje specjalne właściwości stron jako „typ strony”. Dotyczy to głównie tego, czy bieżąca strona jest stroną nadrzędną lub podrzędną, ale także w przypadku stron docelowych ustawionych jako strona główna WordPress lub strona bloga.

Lokalizacja: taksonomia

Miejsce do edycji lub dodawania terminu w taksonomii.

Podaj nazwę taksonomii jako 'value'. Pamiętaj, że nie możesz podać tablicy wielu taksonomii, ale możesz podać 'all'wszystkie taksonomie.

Lokalizacja: użytkownik

Ta lokalizacja służy do dodawania lub edytowania profilu użytkownika.

Podaj 'edit‘, aby kierować tylko ekran edycji istniejących użytkowników, 'register'aby kierować tylko formularz podczas rejestrowania nowego użytkownika, lub ‘ all'dla obu powyższych.

Lokalizacja: pozycja menu

Od wersji ACF 5.6 można również dodawać grupy pól do elementów menu.

Możesz ustawić valuena, allaby zastosować grupę do wszystkich elementów menu, lub możesz określić menu według lokalizacji (zarejestrowane lokalizacje w motywie) lub według identyfikatora menu. Do użytku w lokalizacji 'location/<name>'— więc dla lokalizacji o nazwie „ primary” można ustawić wartość na, 'location/primary'aby zastosować grupę do menu przypisanego tylko do tej lokalizacji. Jeśli chcesz kierować reklamy na określony identyfikator menu, ustaw wartość na ciąg o tym identyfikatorze.

Lokalizacja: widżet

ACF zapewnia nawet lokalizację w ustawieniach widżetu bez modyfikowania podstawowego kodu widżetu.

Możesz kierować reklamy na wszystkie widżety 'all'jako 'value'lub kierować na określony widżet. Musisz znać „wewnętrzny identyfikator” widżetu, z którym są zarejestrowane.

Lokalizacja: strona opcji ACF (tylko Pro)

Dzięki ACF Pro możesz użyć ACF do skonfigurowania niestandardowych stron administracyjnych.

acf_add_options_pagePodaj nazwę, którą ustawiłeś menu_slugjako 'value'.

Lokalizacja: blok (tylko Pro 5.8+)

ACF Pro (5.8+) posiada funkcję dodawania bloków Gutenberga z polami z ACF i kontrolowania jego wyjścia za pomocą PHP. Całkiem fajnie dla tych, którzy jeszcze nie zagłębili się w dodawanie niestandardowych bloków Gutenberga i wymaganego JavaScript.


Pola

Teraz przechodzimy do bardziej interesującej części; same pola. ACF oferuje (naprawdę) szeroki zakres typów pól i powtórzę; ten przewodnik nie pokazuje, czym są poszczególne pola i jak one działają lub wyglądają.

W tablicy podstawowej, którą udostępniasz 'fields', acf_add_local_field_group()podajesz tablicę, w której każde pole jest własną tablicą.

Absolutne minimum wymagane dla każdego pola jest następujące: unikat 'key', który może być czymkolwiek zechcesz i prawdopodobnie nigdy nie będziesz musiał się do niego odwoływać. Potrzebny 'name'jest również klucz meta (post, użytkownik, termin), w którym wartość pola jest zapisana jako – i to jest ten, do którego będziesz się odwoływać podczas pobierania wartości pól. Powinieneś podać 'label'i wreszcie klucz 'type', który określa, z jakim typem pola mamy do czynienia. Reszta pól zależy od 'type'tego, co zobaczymy, gdy przejdziemy przez każdy typ pola poniżej.

To jest szkielet kodu do dodawania pola.

Pamiętaj, że będziesz potrzebować powyższego dla każdego pola, ale aby nie powtarzać tego samego kodu, każdy typ pola poniżej będzie zawierał tylko 'type'i wszelkie inne elementy potrzebne dla tego typu pola.

Pole: Wprowadzanie tekstu

Najprostsze pole ze wszystkich. Wszystko, czego naprawdę potrzebujemy, to:

Ale aby jeszcze bardziej dostosować wprowadzanie tekstu, możesz również podać dowolne z poniższych:

Pole: Wprowadź numer

Pole: Obszar tekstowy

Pole: suwak zakresu

Pole: Hasło

To samo, co wprowadzanie tekstu, z tą różnicą, że wszystko, co w nim wpiszesz, będzie oznaczone *, jak można się spodziewać w polu hasła.

Pole: Obraz

Wybierz jeden obraz.

Pole: Plik

Podobny do powyższego obrazu, z tą różnicą, że nie wyświetla podglądu pliku.

Możesz również podać 'mime_types' => '',i ustawić go na np. 'pdf,docx'do zezwalania tylko na pliki PDF i DOCX.

Pole: Edytor WYSIWYG

WYSIWYG to edytor „To, co widzisz, jest tym, co dostajesz” – ten, który znaliśmy przed pojawieniem się Gutenberga (TinyMCE).

Parametr 'media_upload'i 'delay'może mieć wartość 1 (prawda) lub 0 (fałsz).

Pole: Wybierz

Pole: Pole wyboru

Zauważ, że 'default_value'może to być tablica wielu wyborów.

Pole: przycisk radiowy

Ustawienie 'other_choice'na true dodaje dodatkowy przycisk radiowy oznaczony „Inne” z tekstem, w którym użytkownik może coś wpisać.

Pole: Prawda/fałsz (przełącz)

Wartość 'ui_on_text'i 'ui_off_text'jest poprawna tylko wtedy, gdy 'ui'wynosi 1, ponieważ określają, co powinno pojawić się na specjalnym przełączniku interfejsu użytkownika.

Pole: Link

Daje przycisk do wprowadzenia linku, wpisując lub wybierając zawartość w witrynie WordPress (powinno być zaznajomione z dodawaniem linku w normalnym edytorze WordPress).

Pole: obiekt postu

Daje pole wyboru, w którym możesz wybrać zawartość WordPress. Wybierz umożliwia wyszukiwanie przez wpisanie, a cała treść jest podzielona według typu posta. Możesz zezwolić na wybór wielu postów lub tylko jednego.

Pole: Związek

Pole: Wybierz terminy w taksonomii

Selektor terminów taksonomicznych ma cztery różne „tryby” lub typy, z których dwa pozwalają na wielokrotny wybór.

Pole: Wybierz użytkownika

Pole: Mapy Google

Pamiętaj, że aby to pole działało, musisz podać prawidłowy klucz GoogleMaps API do ACF, na przykład:

add_filter('acf/fields/google_map/api', function($api) { $api['key'] = 'YOURAPIKEY'; return $api; });

Pole: Selektor dat

Pole: Selektor daty i godziny

Pole: Selektor czasu

Pole: Próbnik kolorów

Pole: Galeria (tylko ACF Pro)

Specjalne typy pól

ACF oferuje również niektóre typy pól, które same w sobie nie zapisują wartości, ale są bardziej do celów organizacyjnych. Dla wszystkich tych ustaw 'name'na pusty ciąg.

Wiadomość HTML

Jeśli chcesz po prostu wydrukować kod HTML bez faktycznego zapisywania wartości, możesz użyć type 'message'.

Wzmacniacz (tylko ACF Pro)

Repeater przechowuje tablicę pól, które mogą się powtarzać.

Element sub_fieldsoczekuje tablicy pól, tak jak skonfigurowałeś pola powyżej.

Wniosek

W żadnym wypadku nie jest to wyczerpujący przewodnik, ponieważ ACF oferuje tak szeroki zakres opcji i dostosowań. Powinien jednak obejmować najczęściej używane opcje i niestandardowe przypadki użycia. Osobiście często odnoszę się do tego, gdy dodaję pola ACF dla klientów. I nawet w przypadku najdziwniejszych opcji ten przewodnik jest wystarczający, abym nie musiał rozpychać moich plików PHP kodem eksportu ACF. Mam nadzieję, że tobie też się przydało!

Źródło nagrywania: awhitepixel.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów