Beschreibung
*** New feature added: Custom Post ID Slugs ***
To jest wtyczka add on dla Advanced Custom Fields (ACF) 5 + the Options Page Add On (lub ACF Pro).
Ta wtyczka nie zapewni żadnej funkcjonalności, chyba że ACF 5 i Options Page Add On (lub ACF5 Pro)
jest zainstalowany
Ta wtyczka zapewnia interfejs administratora do dodawania stron opcji w ACF, w tym wszystkie opcje dla stron opcji ACF
. Większość opcji jest wybieralna, na przykład lokalizacja menu, możliwości i gdzie zapisać
wartości pól.
Więcej informacji zobacz
Inne uwagi i
Zrzuty ekranu
Repozytorium Github
Ta wtyczka jest również na GitHub
https://github.com/Hube2/acf-options-page-adder
Zmiana możliwości
Możliwość wymagana do dodawania/edycji ustawień strony opcji to „manage_options”. Ta zdolność może zostać zmieniona przez dodanie filtra.
add_filter('acf-options-page-adder/capability', 'my_acf_options_page_adder_cap');function my_acf_options_page_adder_cap($cap) { $cap = 'edit_published_posts'; return $cap;}
Zapisywanie wartości do postu strony opcji
ACF v5.2.7 dodał możliwość zapisywania pól strony opcji do identyfikatora postu. Ta wtyczka pozwoli ci zapisać opcje do tego samego identyfikatora postu utworzonego podczas dodawania strony opcji za pomocą tej wtyczki. Możesz nawet użyć get_fields($options_page_id) bez konieczności martwienia się o uzyskanie pól dla samej strony opcji. Dlaczego? Ponieważ wszystkie pola używane do tworzenia strony opcji zaczynają się od podkreślenia _ i nie będą zwracane przez get_fields(). Jedyną rzeczą, na którą musisz uważać, jest nieużywanie żadnej z nazw pól używanych przez tę wtyczkę, co powinno być niezwykle proste, ponieważ wszystkie zaczynają się od acfop.
Zapisywanie wartości przy użyciu niestandardowego identyfikatora postu slug
Możliwe jest użycie niestandardowego slug do zapisywania wartości strony opcji. Na przykład, jeśli chcesz zapisać wartości strony opcji do użytkownika, możesz podać „user_1” jako wartość $post_id dla strony opitons. Ma to również inny efekt uboczny. Normalnie, kiedy ACF zapisuje wartości do „options” w tabeli opcji, znajdziesz pola z prefiksem „options_”. Tak więc na przykład, jeśli nazwa Twojego pola to „moje_pole” to w tabeli opcji znajdziesz „opcje/moje_pole” jako nazwę opcji. Możesz dostarczyć niestandardowy slug dla tego, powiedzmy, że ustawiłeś ustawienie post ID dla strony opcji na „my-custom-slug”. spowodowałoby to, że to samo pole na stronie opcji miałoby nazwę „my-custom-slug_my_field”. 2 Nowe opcje zostały dodane do tej wtyczki i możesz wybrać użycie slugu strony opcji dla ID postu lub możesz określić niestandardowy slug do użycia zamiast tego.
Get Post ID for Options Page
Funkcja i filtr są dostępne w celu uzyskania prawidłowej wartości ACF $post_id do użycia w celu uzyskania
wartości ze strony opcji. Ta funkcja/filtr zwróci 'options’ dla stron opcji przechowywanych w
options lub zwróci poprawny identyfikator postu, jeśli opcje są zapisane w poście. Prawidłowe ID jest zwracane
na podstawie wartości „menu_slug” strony opcji.
/ example 1: function get_options_page_id()// get the post_id of an options page$post_id = get_options_page_id('my_options_page_slug');// get a value using $post_id$value = get_field('my_option_field', $post_id);// or it can be combined like this$value = get_field('my_option_field', get_options_page_id('my_options_page_slug'));// example 2: by filter$default = 'option',$slug = 'my_options_page_slug';$post_id = apply_filters('get_option_page_id_filter', $default, $slug);$value = get_field('my_option_field', $post_id);// or it can be combined like this$value = get_field('my_option_field', apply_filters('get_option_page_id_filter', $default, $slug));
Istnieje warunek, w którym otrzymasz nieprawidłowe id postu. Ten warunek jest tworzony przez posiadanie strony przekierowania najwyższego poziomu, która jest ustawiona na przekierowanie do pierwszej podrzędnej strony opcji. Jeśli nie ma podstrony opcji, która istnieje, zwróci ona wartość dla strony opcji najwyższego poziomu. Jeśli później utworzysz podstronę opcji, zwróci ona nową wartość z podstrony opcji. Dlatego właśnie domyślną wartością redirect jest false. Jeśli chcesz, aby strona najwyższego poziomu przekierowywała, musisz być świadomy, że może to spowodować problemy w późniejszym czasie, jeśli nie utworzyłeś podstrony opcji. Powinieneś także specjalnie ustawić kolejność podstron opcji tak, aby nie uległy one zmianie w pewnym momencie w przyszłości, ponieważ dodanie nowej strony opcji z tą samą kolejnością co istniejąca strona najwyższego poziomu spowoduje zmianę lokalizacji zapisu i uzyskania do nowej strony opcji. Nie mogę nic z tym zrobić, tak to działa. Podczas ustawiania stron opcji ACF, aby zapisać do postu zamiast opcji, musisz być bardziej precyzyjny w argumentach strony opcji.
Wsparcie Font Awesome
Proszę zauważyć, że ta wtyczka nie zapisuje ani nie włącza Font Awswsome do administratora witryny.
Jeśli włączysz Font Awsome do swojego administratora, możesz użyć Font Awesome Icons dla ikon
strony opcji najwyższego poziomu. Na przykład, jeśli chcesz użyć ikony książki adresowej, to wszystko, co musisz zrobić, to dodać fa fa-address-book
do pola ikony podczas dodawania lub edytowania strony opcji.
Filtr opcji strony nagłówka/stopki/treści
Wersja 3.8.0 tej wtyczki dodała możliwość dostosowania strony opcji ACF poprzez dodanie nagłówka i stopki treści. W addtion do pól WYSIWYG, które zostały dodane do edytora administratora strony opcji, można również dostosować te sekcje lub całą stronę opcji za pomocą filters.
Wersja 3.8.2 tej wtyczki dodaje przełącznik, aby włączyć tę funkcję. Ta funkcja może spowodować błąd fatalny out of
memory na stronach opcji, które mają dużą liczbę pól. Jeśli zawartość została wprowadzona do tego pola przed przełączeniem, aby włączyć, przełącznik zostanie automatycznie włączony. W przeciwnym razie domyślnie ta opcja będzie wyłączona.
Header Content
add_filter('acf-options-page-adder/page-header', 'my_custom_options_page_header', 10, 2);function my_custom_options_page_header($content, $hook) { // $content = content, by default it is '' or the value of the WYSIWYG editor // $hook = the current options page hook that is being called $content = '<p>My Custom Header Content</p>'; return $content;}
Footer Content
add_filter('acf-options-page-adder/page-footer', 'my_custom_options_page_footer', 10, 2);function my_custom_options_page_footer($content, $hook) { // $content = content, by default it is '' or the value of the WYSIWYG editor // $hook = the current options page hook that is being called $content = '<p>My Custom Footer Content</p>'; return $content;}
Filter Entire Options Page
add_filter('acf-options-page-adder/page-content', 'my_custom_options_page_filter', 10, 2);function my_custom_options_page_filter($content, $hook) { // $content = entire content or options page, including all ACF fields // $hook = the current options page hook that is being called // caution should be taken when making modification to the page content return $content;}
Remove Nag
Jeśli chcesz usunąć mój mały nag, który pojawia się na niektórych stronach administratora dodaj poniższe do swojego pliku functions.php
add_filter('remove_hube2_nag', '__return_true');
.