Własne pola w Wordpresie

.

Niektóre systemy zarządzania treścią umożliwiają dodanie pewnych dodatkowych informacji do wpisów. Nie inaczej jest w przypadku Wordpresa. System ten daje nam możliwość dodania własnych meta danych, które następnie mogą być wykorzystane podczas wyświetlania wpisu, do którego zostały przypisane.

Istotną rzeczą jest aby wiedzieć, że własne pola ( ang. custom fields ) są przypisane do wpisu, niezależnie czy to typowy wpis blogowy, czy strona lub jakiś inny własny typ.

Normalnie, gdy publikujemy własny wpis, nie posiada on żadnych własnych pól. Muszą one zostać dodane a ich wartości określone, co normalnie można zrobić na stronie wpisu przy pomocy sekcji "Własne pola".

Aby dodać nowe własne pole, należy dodać jego nazwę oraz określić wartość. Pól o tej samej nazwie, które zostaną przypisane do jednego wpisu może być wiele, a każde z nich może posiadać swoją własną wartość lub duplikować wartość porzedniego pola. Nadpisanie wartości pola innym o tej samej nazwie nie ma szans się zdarzyć.

Po określeniu nazwy i wartości własnego pola należy kliknąć na przyciks "Dodaj własne pole" co spowoduje przypisanie go do aktualnie tworzonego (edytowanego wpisu). Po zapisaniu wpsiu można przejść do plików aktywnego motywu i spróbować odzyskać własne pola.

Funkcje własnych pól

Standardowo WordPress jest wyekwipowany w kilka funkcji, które umożliwiają odzyskanie własnych pól w motywie. Na przykład funkcja motywu o nazwie the_meta wyświetla wszystkie pola dla wpisu w postaci nieuporządkowanej listy podczas gdy użyta w pętli. Sposób użycia można zaobserowować poniżej:

Dodatkowe informacje dla tego wpisu:


<?php the_meta(); ?>

Jeżeli chcemy odzyskać tylko pojedyńcze pole o znanej nazwie dla posta o określonym ID, to możemy skorzystać z usług funkcji get_post_meta, która w odróżnieniu od poprzednio omawianej, niczego nie wyświetla, ale zwraca tablicę wartości dla danego klucza (z trzecim argumentem równym 1 zwróci pierwszą wartość z ów tablicy w postaci łańcucha znaków).


$meta_values = get_post_meta($post -> ID, $key, $single = 0 );

Wszystkie klucze (nazwy własnych pól) możemy odzyskać również z użyciem funkcji get_post_custom_keys, która zwraca tablicę.


 get_post_custom_keys($post -> ID);

W podobny sposób możemy również odzyskać wartości dla poszczególnych pól wybranego wpisu, przy czym skorzystamy w tym przypadku z funkcji get_post_custom_values.


  get_post_custom_values($klucz, $post -> ID);

Użycie tej funkcji może wyglądać jak nastepuje:


 $values = get_post_custom_values('key');
 foreach ( $values as $key => $val ) {
    echo "$key  => $val ('my_key'),";
  }

Ostatecznie możliwe jest również ściągnięcie wielowymiarowej tablicy ze wszystkimi kluczami i wartościami dla określonego wpisu
z pomocą funkcji get_post_custom.


  get_post_custom($post -> id)

Jak wykorzystać własne pola

Do czego można wykorzystać własne pola ? W zasadzie do wszystkiego co przyjdzie nam do głowy. Załóżmy, że na przykład opisujemy
w naszym wpisie jakiś przedmiot, niech to będzie samochód. Dodatkowe atrybutu np. cenę, pojemność silnika, kolor czy nazwę producenta możemy umieścić właśnie we własnych polach. Możliwości są ogromne.

Przykład użycia własnych pól

Użycie własnych pól do wyświetlania skryptu javaScript.

Załóżmy, że dla pewnych wpisów chcemy wyświetlić skrypty javaScript. Własne pola świetnie nadają się aby ów wpisy ozanczyć jako te, które potrzebują nadmienionego wyżej skryptu.

Jedyne co musimy zrobić to dodać własne pole, które będzie miało wartość 1 ( logiczna prawda ) i klucz o nazwie naszego skryptu.

W poniższym przykładzie kluczem własnego pola będzie "my_script’"


if(function_exists('display_my_script')){
  add_action('wp_print_scripts','display_my_script');
}

function display_my_script(){
  if( is_single() and have_posts()) {
    global $post;
    $post_id ;
    $init_val;
    $post_id = $post -> ID;
    $post_id = intval($post_id);
    $init_val = get_post_meta($post_id, 'my_script', true );
    if(isset($init_val) and intval($init_val)){
      wp_enqueue_script( 'my_script', get_template_directory_uri() . '/sciezka/do/my_script.js');
    }
  }
}

Powyższa akcja, gdy umieszczona w pliku functions.php aktywnego motywu, spowoduje wyświetlenie taga HTML skryptu w nagłówku dokumentu.

Więcej informacji o własnych polach

Więcej przykładów i opis innych, nienadmienionych tu, funkcji służących do manipulacji własnymi polami można znalaźć na tej stronie kodeksu Wordpresa.


Komentarze ( 3 )


Po przeczytaniu tego artykułu dalej nie wiem jak sobie poradzić. Potrafię wywołać wszystkie "pola własne" przy pomocy jak było podane wyżej. Nie potrafię jednak wywołać konkretnych pól. Tutaj jest napisana funkcja która pobiera ich wartość ale nie wyświetla, a ja potrzebuję wyświetlić tyle że nie wiem jak. Tym bardziej że zależy mi aby różne pola były w różnych miejscach wpisu. stąd moje pytanie jaki kod mam wstawić ( u mnie to single.php) aby dla przykładu z pól cena, moc, i numer oferty wyświetlić tylko parametry cena i numer oferty. Proszę o pomoc.


Trochę jest tak jakbym księgowego czytał - niby wszystko niby konkretnie ale kompletnie niezrozumiałe


hi hi, obsługa własnych pól w wordpresie to kilka prostych funkcji PHP. Jeżeli znasz en język ich użycie nie będzie nastręczać trudności ...


Twój komentarz





Niektóre tagi XHTML są dozwolone
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>