nagradzam tutoriale
  • Pola użytkownika w Wordpress

    dodano 11.09.2007 / komentarzy: 0 / autor: palmiak

    Część z Was pewnie dostrzegła w Wordpressie pola użytkownika (ang. Custom Fields), ale prawdopodobnie nie wie do czego to służy i jak to stosować.

    Co to są pola użytkownika

    Każde pole składa się z klucza oraz wartości.
    tak właśnie wyglądają pola użytkownika
    Osoby, który mają choć drobne pojęcie o programowaniu i tablicach, powinny od razu dostrzec analogię. Dzięki polom użytkownika jesteśmy w stanie potworzyć zmienne (i przypisać wartość oczywiście). Mając coś takiego oraz wiedzę programistyczną jesteśmy w stanie bardzo rozszerzyć możliwości naszej strony.

    Pierwsze starcie

    Wyobraźmy sobie, że mamy ochotę, żeby pod każdym naszym wpisem umieszczać utwór którego teraz słuchamy oraz książkę jaką czytamy.

    Najpierw musimy wejść do panelu administracyjnego WP i napisać (albo zedytować starszy) wpis. Wyszukujemy tam pół użytkownika i wpisujemy w pole tekstowe pod słowem klucz teraz słucham, a w wartość np. Deep Purple - Smoke on the Water i klikamy na dodaj. Następnie dodajemy klucz teraz czytam i wpisujemy Jeffrey Zeldman - Projektowanie serwisów WWW, Publikujemy i zapisujemy wpis.

    Naszym kolejnym zadaniem jest wyświetlenie tego na stronie. Wystarczy, że otworzymy katalog w którym znajduje się nasza skóra i poprawimy plik single.php. Wystarczy, że pod the_content(); umieścimy the_meta();.

    W rezultacie otrzymamy nazwę kluczę i wartość od niego przypisaną.

    Od strony kodu WP wyświetlił to jako listę nieuporządkowaną:

    <ul class=’post-meta’>
    <li><span class=’post-meta-key’>Teraz czytam:</span> Jeffrey Zeldman - Projektowanie serwisów WWW</li>
    <li><span class=’post-meta-key’>Teraz słucham:</span> Deep Purple - Smoke on the Water</li>
    </ul>

    Dzięki takiemu układowi za pomocą CSS możemy bardzo prosto zmienić wygląda takiej listy.

    Tylko jeden klucz

    Powyższa metoda ma niestety kilka wad. Najgorszy jest fakt, że musimy wyświetlić zawsze wszystkie klucze i wartości. A co by było gdybyśmy chcieli, żeby wyświetliło nam tekst: W tym momencie czytam książkę pt Jeffrey Zeldman - Projektowanie serwisów WWW, a z głośników dobiega Deep Purple - Smoke on the Water.? Poza tym trzeba wziąć pod uwagę, że może istnieć sytuacja, ze w tym momencie akurat tylko słuchałem muzyki, tylko czytałem książkę, albo nie robiłem ani jednego ani drugiego.

    Nasz skrypcik najpierw musi sprawdzić które pola są wypełnione i zależoności od tego wyświetlić odpowiedni tekst. Wygląda to następująco:

    <?php
    $a = get_post_meta($post->ID, "Teraz czytam", true);
    $b = get_post_meta($post->ID, "Teraz słucham", true);

    if ($a == null && $b == null) {
    echo "Niczego nie czytam ani nie słucham";
    }

    else if ($a == null && $b !=null) {
    echo "Chwilowo słucham $b";
    }

    else if ($a != null && $b ==null) {
    echo "Chwilowo czytam $b";
    }

    else {
    echo "W tym momencie czytam książkę $a, a z głośników dobiega $b";
    }
    ?>

    Na podstawie tego przykładu łatwo zauważyć, że jeśli chcemy wyciagnąć wartość jednego klucza korzystamy z funkcji get_post_meta($id_wpisu, $nazwa_klucza, true); Możemy także zauważyć, że jeśli chcemy pobrać dane z wpisu który właśnie czytam to zamiast $id_wpisu korzystamy z $post->ID.

    Coś praktycznego

    To co sobie popisaliśmy wcześniej pokazało jak działają pola użytkownika oraz jak je pobierać i wyświetlać na stronie, jednak nie ma zbyt praktycznego zastosowania. Żeby to naprawić spróbujemy napisać skrypt za pomocą którego będziemy mogli w postach pisać słowa kluczowe, które powędruje do mety na górze strony.

    Pierwszą rzeczą, którą nasz skrypt będzie musiał zrobić to sprawdzić czy aktualnie przeglądana przez nas strona jest pojedynczym wpisem (za pomocą is_single() ), następnie sprawdzić czy we wpiscie wpisaiśmy jakieś słowa kluczowa (a jak nie to użyje uniwersalnych). Jeśli strona jest pojedyncza i użyliśmy słów kluczowych to pozostaje nam tylko poprosić skrypt o wypisanie słów kluczowych.

    By tego wszystkiego dokonać tworzymy sobie w jakimś wpisie pole keywords i w jego wartości wpisujemy słowa określające ten wpis (oddzielamy je przecinkami). Teraz pozostaje magia w PHP.

    Otwieramy w naszej skórze header.php i w sekcji head piszemy:

    <?php
    $keywords=get_post_meta($post->ID, "Teraz czytam", true);
    if (is_single() && $keywords!=null) {
    } else
    {$keywords="słowa, które, określają, nasz, stronę";}
    echo "<meta nwme=\"keywords\" content=\"$keywords\" />";
    ?>

    Podsumowanie

    Dzięki temu artykułowi poznaliście na jakiej zasadzie działają pola użytkownika. Jest to jednak tylko fragment możliwości jakie możemy dzięki nim uzyskać. Tak naprawdę granicą są jedynie Wasze umiejętności programowania w PHP.

    Jeśli wymyśliliście jakieś ciekawe zastosowanie pół użytkownika wspomnijcie o nich na naszym forum.

    Napisz komentarz