Zaufane samouczki WordPress, kiedy ich najbardziej potrzebujesz.
Przewodnik dla początkujących po WordPressie
WPB Cup
25 milionów+
Witryny korzystające z naszych wtyczek
16+
Lata doświadczenia z WordPressem
3000+
Samouczki WordPress od ekspertów

Jak automatycznie dodawać pola niestandardowe po publikacji wpisu w WordPressie

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.

Jak automatycznie dodawać pola niestandardowe po publikacji wpisu w WordPressie

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

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.

Kliknij przycisk Dodaj nowy, aby dodać swój pierwszy niestandardowy fragment kodu w WPCode

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.

Kliknij przycisk Dodaj fragment własny

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

Wybierz Fragment PHP jako typ kodu

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.

Wklej fragment kodu w polu kodu WPCode

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

Wybierz metodę wstawiania swojego niestandardowego fragmentu kodu

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”.

Zapisz i aktywuj swój niestandardowy fragment kodu

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.

Ujawnienie: Nasze treści są wspierane przez czytelników. Oznacza to, że jeśli klikniesz w niektóre z naszych linków, możemy otrzymać prowizję. Zobacz jak finansowany jest WPBeginner, dlaczego to ważne i jak możesz nas wesprzeć. Oto nasz proces redakcyjny.

Ostateczny zestaw narzędzi WordPress

Uzyskaj BEZPŁATNY dostęp do naszego zestawu narzędzi – kolekcji produktów i zasobów związanych z WordPress, które powinien mieć każdy profesjonalista!

Interakcje czytelników

18 CommentsLeave a Reply

  1. 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.

  2. 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

  3. Zamiast dodawać niestandardowe pole w momencie tworzenia posta, jak mogę domyślnie wyświetlić niestandardowe pole na stronie administratora?

    • 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

      • 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ą.

  4. 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?

  5. 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’);

    • 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.

  6. 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

Zostaw odpowiedź

Dziękujemy za pozostawienie komentarza. Pamiętaj, że wszystkie komentarze są moderowane zgodnie z naszą polityką komentowania, a Twój adres e-mail NIE zostanie opublikowany. Prosimy NIE używać słów kluczowych w polu nazwy. Prowadźmy osobistą i znaczącą rozmowę.