Automatyczne tworzenie pól niestandardowych podczas publikowania postów w WordPressie to potężny sposób na oszczędność czasu i redukcję powtarzalnych zadań, zwłaszcza jeśli zarządzasz dużą witryną lub pracujesz nad niestandardową funkcjonalnością.
Zamiast ręcznie dodawać te same pola niestandardowe za każdym razem, gdy publikujesz określony typ treści, możesz zautomatyzować ten proces i zachować spójność.
Przez lata pracowaliśmy nad wieloma projektami WordPress, tworząc wszystko, od prostych blogów po złożone strony z zaawansowanymi funkcjami. Po drodze zdobyliśmy wiele praktycznych wskazówek, takich jak ta, które mogą przyspieszyć i usprawnić Twój przepływ pracy.
W tym samouczku pokażemy krok po kroku, jak automatycznie dodawać niestandardowe pola podczas publikowania postów w WordPress.

Dlaczego automatycznie dodawać pola niestandardowe?
Pola niestandardowe pozwalają dodawać dodatkowe informacje do Twoich wpisów. Informacje te mogą być wyświetlane na Twojej stronie internetowej, pozostawać prywatne lub być wykorzystywane przez motywy i wtyczki do rozszerzenia funkcjonalności Twojej strony internetowej WordPress.
Istnieje wiele kreatywnych sposobów wykorzystania pól niestandardowych. Listę pomocnych pomysłów znajdziesz w naszym przewodniku porady, sztuczki i triki dotyczące pól niestandardowych WordPress.
W niektórych przypadkach będziesz chciał, aby niestandardowe pole zostało utworzone automatycznie za każdym razem, gdy opublikujesz post. Jest to szczególnie pomocne, gdy dodajesz funkcjonalność do WordPressa, aby można go było używać jako czegoś więcej niż tylko prostego bloga.
Na przykład, w WPBeginner użyliśmy tej metody podczas tworzenia strony internetowej z galerią. Chcieliśmy przechowywać krótkie adresy URL dla każdego elementu przesłanego do galerii. Dlatego automatycznie utworzyliśmy niestandardowe pole do przechowywania krótkiego adresu URL po opublikowaniu każdego posta.
Ten rodzaj automatyzacji pomaga programistom oszczędzać czas, redukować błędy i tworzyć potężniejsze strony WordPress przy mniejszym nakładzie pracy ręcznej.
Teraz przejdźmy przez proces konfiguracji.
Automatyczne dodawanie pól niestandardowych po publikacji posta
Metoda ta polega na dodaniu niestandardowego fragmentu kodu do pliku functions.php Twojego motywu. Nie zalecamy edycji plików motywu niedoświadczonym użytkownikom, ponieważ nawet drobny błąd może spowodować awarię Twojej witryny.
Zamiast tego pokażemy Ci, jak używać wtyczki WPCode w tym samouczku.

WPCode ułatwia dodawanie fragmentów kodu w WordPressie bez konieczności edycji pliku functions.php motywu. Możesz również zarządzać wszystkimi fragmentami kodu z jednego centralnego ekranu.
Jeśli po raz pierwszy dodajesz kod do WordPressa, zapoznaj się z naszym przewodnikiem, jak kopiować i wklejać fragmenty kodu w WordPressie, aby uzyskać więcej informacji.
Aby rozpocząć, musisz zainstalować i aktywować darmową wtyczkę WPCode. Jeśli potrzebujesz pomocy, zapoznaj się z naszym samouczkiem jak zainstalować wtyczkę WordPress.
Uwaga: Darmowa wersja WPCode zawiera wszystko, czego potrzebujesz do dodawania niestandardowego kodu w WordPress. Aby uzyskać bardziej zaawansowane funkcje, takie jak zaplanowane snippetów, piksele konwersji i inne, możesz zaktualizować do WPCode Pro.
Po aktywacji wtyczki w pasku administracyjnym WordPressa pojawi się nowy element menu o nazwie „Fragmenty kodu”. Kliknij go, a następnie naciśnij przycisk „Dodaj nowy” na następnym ekranie.

Spowoduje to przejście do Biblioteki Snippetów WPCode.
Stąd przejdź do opcji „Dodaj swój niestandardowy kod (nowy fragment)” i kliknij przycisk „+ Dodaj niestandardowy fragment” pod nim.

Następnie wybierz „Fragment PHP” jako typ kodu z listy opcji, które pojawią się na ekranie.

Następnie musisz nadać fragmentowi tytuł, a następnie skopiować poniższy kod i wkleić go do pola „Podgląd kodu”.
add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
add_post_meta($post_ID, 'field-name', 'custom value', true);
}
}
Będziesz musiał zastąpić „nazwa-pola” i „wartość niestandardowa” rzeczywistą nazwą i wartością, której chcesz użyć dla pola niestandardowego.

Następnie przewiń w dół do sekcji „Wstawianie”. Tutaj musisz pozostawić wybraną metodę „Automatyczne wstawianie”.

Dzięki metodzie automatycznego wstawiania fragment zostanie automatycznie wstawiony i wykonany we właściwym miejscu.
Po zakończeniu musisz przełączyć przełącznik z pozycji „Nieaktywny” na „Aktywny”, a następnie kliknąć przycisk „Zapisz fragment”.

Po aktywacji fragmentu niestandardowe pole zostanie utworzone za każdym razem, gdy opublikujesz post.
Mamy nadzieję, że ten samouczek pomógł Ci dowiedzieć się, jak automatycznie dodawać pola niestandardowe po publikacji posta w WordPressie. Możesz również chcieć dowiedzieć się, jak wyświetlać pola niestandardowe poza pętlą w WordPressie lub zapoznać się z naszą listą niezbędnych wtyczek WordPress, aby rozwijać swoją witrynę.
Jeśli podobał Ci się ten artykuł, zasubskrybuj nasz kanał YouTube po samouczki wideo WordPress. Możesz nas również znaleźć na Twitterze i Facebooku.
Jiří Vaněk
Jeśli mam stronę internetową z wieloma użytkownikami i chcę, aby biografia autora była automatycznie wstawiana po opublikowaniu artykułu, czy można skorzystać z tego przewodnika? To znaczy, czy można użyć niestandardowych pól, aby zapewnić, że krótka biografia autora zostanie wstawiona na początku w zależności od tego, kto pisze artykuł? Chciałbym, aby było to zautomatyzowane w ten sposób. Obecnie robimy to za pomocą Elementora, gdzie każdy autor ma zapisany swój szablon i musi go ręcznie wstawić na początku.
Wsparcie WPBeginner
To, czego szukasz, to pole biografii autora, które omawiamy w naszym przewodniku poniżej:
https://www.wpbeginner.com/wp-tutorials/how-to-add-an-author-info-box-in-wordpress-posts/
Admin
Sateesh Raghuwanshi
Muszę dodać tę akcję dla niestandardowego typu posta o nazwie „ad_system”
nayan
Chcę dodać identyfikator kategorii dla posta do tabeli post_meta. Jak można zmodyfikować funkcję function add_custom_field_automatically($post_ID), aby to uwzględnić?
Dzięki
chris
Zamiast dodawać niestandardowe pole w momencie tworzenia posta, jak mogę domyślnie wyświetlić niestandardowe pole na stronie administratora?
puanthanh
nie dodaje się do niestandardowego typu posta
Personel redakcyjny
Jeśli zauważysz, powyższy kod nie ma nic wspólnego z niestandardowymi typami postów. Dodaje tylko do typu treści Post i Page. Musiałbyś więc określić hak dla swojego niestandardowego typu posta.
Admin
puanthanh
Dzięki za odpowiedź. Czy możesz mi pomóc z tym kodem.
add_action(‘publish_page’, ‘add_custom_field_automatically’);
add_action(‘publish_post’, ‘add_custom_field_automatically’);
add_action( ‘save_post’, ‘add_custom_field_automatically’ );
function add_custom_field_automatically($post_ID) { global $post; if(!wp_is_post_revision($post_ID)) { global $wpdb; $user_id = $wpdb->get_var("SELECT post_author FROM $wpdb->posts WHERE ID = $post_ID"); $themename = $wpdb->get_var("SELECT meta_value FROM $wpdb->usermeta WHERE meta_key = ‘themeperauthor’ AND user_id = $user_id"); add_post_meta($post_ID, ‘themeperauthor’, $themename, true); } } Po zmianie pola meta użytkownika chcę automatycznie usunąć wartość niestandardowego pola i zaktualizować ją nową.
brian
Pracowałem nad dodaniem kilku ukrytych niestandardowych pól przy publikowaniu/aktualizacji posta (poprzedzając nazwę pola znakiem „_”), ale z jakiegoś powodu muszę dwukrotnie zaktualizować post, zanim wpisy wp_postmeta zostaną zapisane w bazie danych.
Próbowałem zmieniać priorytet i eksperymentować z innymi hakami akcji (draft_to_publish, edit_post itp.), ale nie wydaje się to robić żadnej różnicy.
Jakieś pomysły?
Personel redakcyjny
czy używasz sztuczki Otto z API transient?
Admin
Boba
Thanks for including the source link
Personel redakcyjny
Thanks for providing an amazing tip
Admin
Daniel Suarez
Dzięki Otto, kolejna świetna wskazówka!
Piet
czy to zadziała również dla niestandardowych typów postów?
coś w stylu add_action(‘publish_custom-post-typ-name’, ‘add_custom_field_automatically’);
Otto
Tak, będzie.
Jedną z wad tej techniki, o której ludzie powinni wiedzieć, jest to, że jeśli ktoś edytuje opublikowany post, ten hak zostanie ponownie uruchomiony podczas edycji. Dlatego musisz sprawdzić metadane przed ich dodaniem, zaktualizowaniem lub wykonaniem czegokolwiek, co ma największy sens dla Twojego przypadku użycia.
Jeśli chcesz, aby Twój kod został uruchomiony tylko przy pierwszym publikowaniu, możesz użyć hooka transition_post_status. Ten hook działa w następujący sposób:
add_action('transition_post_status','example',10,3);
function example($new, $old, $post) {
// $new to nowy status posta ('publish')
// $old to stary status posta ('draft')
// $post to kompletny obiekt posta (więc użyj $post->ID dla ID, itp.)
}
Następnie, tutaj możesz wykonać sprawdzenie czegoś takiego jak:
if ($new == 'publish' && $old != 'publish')
Aby Twój kod był używany tylko wtedy, gdy status posta faktycznie przejdzie do opublikowanego z czegokolwiek, czym był wcześniej. Ten hook jest wywoływany w tym samym czasie co hooki {$status}_{$post-type}, więc ich działanie jest zasadniczo takie samo.
Piet
Dzięki Otto, trochę się tym pobawię!
Personel redakcyjny
Dzięki Otto za wyjaśnienie.
Admin
Vivek Parmar
dzięki za tę przydatną wskazówkę. wcześniej, używając pól niestandardowych, musiałem pracować ręcznie. teraz zrobi to automatycznie. dzięki za zaoszczędzenie mojego cennego czasu