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

Dodaj niestandardowe ustawienie linku bezpośredniego dla niestandardowego typu postu w WordPress

6

To jest samouczek, jak dodać niestandardowe ustawienie do strony administratora WordPressa „Ustawienia > Permalinki", aby zdefiniować slug dla niestandardowego typu postu. Jeśli tworzysz motyw lub wtyczkę dla innych, która ma wbudowany niestandardowy typ postu, dodanie tego ustawienia zostanie docenione przez użytkownika za umożliwienie mu decydowania o strukturze adresu URL niestandardowego typu posta.

Nie będę szczegółowo omawiał, jak dodać niestandardowy typ posta; jeśli nie masz pewności, polecam przyjrzeć się , jak dodać niestandardowy typ posta.

Załóżmy, że masz kod do zarejestrowania niestandardowego typu postu w następujący sposób:

Interesuje nas rewriteargument. W tym miejscu definiujemy, jaki slug otrzyma dany post przed wszystkimi jego postami. Twój kod do rejestracji niestandardowego typu postu może być nieco inny, np. bez „ with_front“, ale to, co nas tutaj interesuje, to „ slug“:

Za pomocą tego kodu praktycznie na stałe ustalasz, jaki będzie ślimak permalink posta. Typ postu dla referencji może być używany dla wielu typów treści i użytkowników motywów; np. projekt, portfolio, referencje klientów, referencje firm itp. Aby uczynić twój motyw elastycznym, możesz pozwolić użytkownikowi motywu na samodzielne decydowanie o rodzaju postu.

Zobaczmy więc, jak to zrobić!

Dodawanie i zapisywanie pola

Korzystanie z interfejsu API ustawień WordPressa upraszcza to nieco dla nas. Wszystko, czego potrzebujemy, to dodać pole ustawień i powiedzieć WordPressowi, na której stronie administratora ma być wyświetlany – w naszym przypadku na stronie ustawień permalinków. Pamiętaj, że musimy napisać funkcję, która faktycznie zapisuje również wartość, co zrobimy na końcu.

Podłączamy naszą funkcję do admin_inithaka i rejestrujemy nasze ustawienie. Kiedy rejestrujemy ustawienie, określamy, jaką funkcję ma ona uruchomić w celu wyprowadzenia ustawienia:

add_action('admin_init', function() { add_settings_field('mytheme_reference_slug', __('References base', 'txtdomain'), 'mytest_reference_slug_output', 'permalink', 'optional'); });

Ustawienie czwartego argumentu [add_settings_field](https://developer.wordpress.org/reference/functions/add_settings_field/)()na 'permalink'mówi WordPressowi, aby dodał to ustawienie do strony Ustawienia permalinków. Argument numer trzy to funkcja, którą WordPress powinien uruchomić podczas wyprowadzania ustawienia – funkcja, którą definiujemy następnie (poza funkcją podpiętą):

W tej funkcji po prostu wypisujemy podstawowy tekst formularza <input>. Dla jego valueatrybutu pobieramy wartość ustawienia za pomocą [get_option](https://developer.wordpress.org/reference/functions/get_option/)(). Atrybut jest placeholderopcjonalny, ale dobrą praktyką jest umieszczenie domyślnej bazy informacji o ślimaku, aby użytkownik motywu wiedział, czy chce zmienić jego wartość, czy nie.

Jeśli zapiszesz kod i przejdziesz teraz na stronę Permalinków WordPress, powinieneś zobaczyć swoje pole na samym końcu:

Dodaj niestandardowe ustawienie linku bezpośredniego dla niestandardowego typu postu w WordPress

W tej chwili ustawienie nie zapisuje swojej wartości, to kolejny krok.

Musimy dodać kolejną podłączoną funkcję admin_init, która sprawdza, czy nasze ustawienie zostało przesłane w formie struktury permalink. A jeśli tak, należy go zapisać za pomocą [update_option](https://developer.wordpress.org/reference/functions/update_option/)().

add_action('admin_init', function() { if (isset($_POST['permalink_structure'])) { update_option('mytheme_reference_slug', trim($_POST['mytheme_reference_slug'])); } });

Podczas zapisywania ustawień Permalinków formularz jest przesyłany, dzięki czemu jesteśmy w stanie uzyskać wartości poprzez $_POSTzmienną globalną PHP. Przesłane wartości z formularza są przechowywane jako tablica z atrybutami nazwy danych wejściowych jako kluczami. W naszym przypadku ustawiamy atrybut nazwy ‘ mytheme_reference_slug‘ na naszych danych wejściowych, dzięki czemu możemy uzyskać dostęp do przesłanej wartości za pomocą $_POST['mytheme_reference_slug'].

Teraz ustawienie powinno działać w pełni na stronie ustawień Permalink. Ostatnią częścią jest przypisanie wartości tego ustawienia do naszego niestandardowego typu posta.

Sprawiając, że nasz niestandardowy typ posta korzysta z naszych ustawień

Aby nasz niestandardowy typ postu używał niestandardowej wartości naszego ustawienia, wracamy do register_post_type()wywołania funkcji i modyfikujemy rewriteargument w taki sposób:

Wszystko, co tutaj robimy, to pobieranie wartości naszej nowej opcji. Jeśli jest pusta 'reference', zostanie użyta domyślna ().

I to wszystko! Teraz Twój niestandardowy typ postu będzie używał dowolnej bazy informacji o slugach ustawionej na stronie Ustawienia Permalinków. W ten sam sposób możesz dodać więcej ustawień, na przykład dla niestandardowych taksonomii.

Pełny kod

Teraz wszyscy razem.

Ź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