/ Programowanie / Jak korzystać z własnych pól w WordPress? Dodajemy Custom Fields do szablonu.

Jak korzystać z własnych pól w WordPress? Dodajemy Custom Fields do szablonu.

Administrator , 8 listopada 2015 - 20:35 w Programowanie

Mechanizm tworzenia własnych pól tzw. Custom Fields w WordPress jest niezwykle użyteczny i pozwala nam w stosunkowo prosty sposób umieścić na stronie dodatkowe informacje np. wyświetlające źródło wstawionych zdjęć. Zastosowań własnych pól w WordPress jest naprawdę bardzo dużo, dlatego postanowiliśmy zaprezentować Wam, w jaki sposób korzystać z tej funkcjonalności i jak wyświetlać nowe pola na zainstalowanym przez Was szablonie.

wordpress wlasne polaŹródło: pixabay.com, kpgolfpro

1 Czym są pola Custom Fields w WordPress

Custom Fields, to mechanizm zaimplementowany w WordPress, który pozwala przypisać do postu niestandardowe pola, znane jako meta-dane. Meta-dane możemy traktować jako parę klucz-wartość, gdzie kluczem jest nazwa pola Custom Field, natomiast wartością wpisany przez nas dowolny ciąg znaków. Tego rodzaju pola możemy tworzyć i aktualizować podczas tworzenia nowego wpisu:

custom field

Jeżeli mimo wszystko nie widzimy w naszym WordPress miejsca do definiowania własnych niestandardowych pól, to należy sprawdzić czy w opcjach ekranu mamy zaznaczoną opcję Własne pola.

2 Wyświetlamy Custom Field na końcu wpisu

Aby wyświetlić pole Custom Field na końcu każdego postu będziemy musieli w niewielkim stopniu zmodyfikować kod PHP – zanim jednak tego dokonamy zobaczmy jaka funkcja odpowiada za pobieranie wartości z utworzonego przez nas pola:

<?php the_meta(); ?>

Wstawienie powyższego fragmentu kodu spowoduje wyświetlenie listy wszystkich utworzonych niestandardowych pól własnych.

<?php echo get_post_meta($post->ID, $name, true); ?>

Funkcja get_post_meta zwraca wartość znalezionego pola Custom Field na podstawie identyfikatora postu, oraz nazwy pola. Ostatni parametr jest opcjonalny, przyjmuje wartość true/false i określa, czy funkcja ma zwracać pojedynczą wartość.

Spróbujmy wykorzystać zdobytą dotąd wiedzę – pierwszą rzeczą, którą należy zrobić jest utworzenie pola Custom Field – możemy to zrobić na ekranie, w którym dodajemy nowe wpisy (o czym pisaliśmy na początku). Dodane pole będzie wyświetlało u dołu każdego wpisu źródło, z którego został zaczerpnięty artykuł.

Nazwijmy nasze pole „Źródło„, natomiast jako wartość podamy rzeczywiste źródło artykułu – to już prawie połowa sukcesu, teraz jeszcze musimy wyświetlić nowo utworzone pole. W tym celu dodamy nową funkcjonalność do naszego WordPress’a – otwieramy menu Wygląd -> Edytor. Z dostępnej listy plików php wybieramy funkcje motywu (Functions.php):

funkcje motywu

W edytorze przesuwamy suwak na koniec dokumentu i przed znakiem ?> dodajemy poniższy fragment kodu:

function add_source($content) {
        global $post;
        $key = „źródło”;
        $new_content = get_post_meta($post->ID, $key, true);
        if($new_content){
            $content .='<div class=”custom-field”>’ . get_post_meta($post->ID, $key, true) . „</div>”;
        }
        return $content;
}
add_filter( ‚the_content’, ‚add_source’ );

W ten sposób utworzyliśmy nową funkcję, która sprawdza, czy istnieje pole o nazwie źródło i ma wypełnioną zawartość – jeżeli tak, to na koniec zawartości wpisu (content) dodawany jest nowy blok (div) wraz z wartością w polu Custom Field.

Powyższy fragment kodu możemy dowolnie rozbudowywać i na przykład dodatkowo sprawdzać, czy mamy do czynienia wyłącznie z wpisami, czy również z innymi typami stron.

Wykorzystując ten mechanizm możecie dodatkowo wzbogacić, lub uzupełnić zawartość prezentowanych przez Was treści w systemie CMS jakim jest WordPress.

 

1 KOMENTUJ

Napisz Komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

1 Komentarze
  • 7 czerwca 2017

    Potrzebuję utworzyć niestandardowe pola dla wpisów. Czy za pomocą Custom Field mogę stworzyć pola posiadające kilka atrybutów np. „Monitor” będzie posiadać atrybuty LED, DVI, D-Sub itp. i czy jest możliwość utworzenie później z tego filtrów do wyszukiwania?

    Pozdrawiam

    Paweł
    Odpowiedz