publikacja: 11 września 2009, autor: , komentarzy 15 http://wpninja.pl/artykuly/wu-pe-chi-triki-3-co-czynic-gdy-pole-uzytkownika-pustym-jest/

Wu-Pe-Chi Triki #3: Co czynić, gdy pole użytkownika pustym jest

Wu-Pe-Chi Triki #3: Co czynić, gdy pole użytkownika pustym jest

Wicher Tysiąca Wzgórz wyginał konary drzew we Wiecznym Gaju w Dolinie Mat Ta Sana niczym sprawny miszcz Wu-Pe-Chi wyginać zwykł pędy bambusa na potrzeby słynnych pętli „Te Lup”. Zbliżywszy się do mnie wolnym krokiem Piotr San podał mi dostarczony przez posła list, w którym odczytałem:

„Miszczu Wu-Pe-Chi z Doliny Mat Ta Sana, ja, Lao Pan, władca Królestwa Toczących Się Wozów z Trzema Strzałami w Osiach, rady zasięgnąć pragnę. Gdy w polu użytkownika na królewskim blogu adresu do płótna nie podam, obramowanie wciąż widocznym jest – jak temu zaradzić, wielki miszczu?”

Spojrzawszy na wiatr szumiący w górze, do Piotra Sana się zwróciłem.

– Pójdź czym prędzej do świątyni, papier, pióro i atrament pochwyć, po czym wróć tu do mnie, bym Lao Panowi odpowiedzi mógł udzielić niezwłocznie.

Jak powiedziałem, tak Piotr San uczynił…

Puste VS Pełne

Nie zawsze można zagwarantować, iż pole użytkownika będzie pełne, tj. będzie posiadało treść. Czasem treści zabraknie, lecz jeśli treścią tą dla przykładu ma być adres do obrazka, jak w przypadku problemu Lao Pana, kod html odpowiadający za wyświetlanie obrazka nadal zostanie – mówimy tutaj o znaczniku IMG. Jak temu zaradzić? Otóż wykorzystamy tutaj instrukcję warunkową IF.

Oczywiście wszystkie następujące czynności wykonujemy w pętli. Wpierw, musimy wyciągnąć samo pole użytkownika i zapisać je do zmiennej.

<?php $obrazek = get_post_meta($post->ID, "obrazek", true); ?>

Treść z pola użytkownika znajduje się już w zmiennej $obrazek, teraz tworzmy instrukcję warunkową.

<?php if ( $obrazek != null ) : ?>
<img src="<?php echo $obrazek; ?>" alt="Obrazek" />
<?php endif; ?>

Fragment != null sprawdza, czy pole nie jest puste (zwracam uwagę na formułę „nie jest puste”). Jeśli w danym polu wpisaliśmy treść, sprawdzanie zwróci wartość TRUE i wyświetli kod HTML, tym samym wyświetli nam obrazek. Jeśli pole było puste, nic nie zostanie wyświetlone. Ot i cała filozofia, aż dziwne, że wiele osób ma z tym zagadnieniem problemy :).

Oto droga Wu-Pe-Chi, prosta, choć wydawać by się mogło inaczej. Jeśli opowieść ta przydatną dla Ciebie była, nie omieszkaj wrzucić czegoś do mieszka, albowiem Tao w pozytywnych energiach Ci to wynagrodzi (no i wesprzesz studenta zbierającego na studia).

tagi:

Komentarze

  1. Nomex 7 lat temu:

    Trochę to niepoprawnie brzmi „Nie zawsze można możemy zagwarantować” :)

    odpowiedz
  2. palmiak 7 lat temu:

    Z jednej strony pożyteczna rada (proponowałem to w komentarzach przy phpThumb). Fajno żeby ludzie skorzystali i wiedzieli, że w razie braku obrazka nie muszą się aż tak przejmować, bo bardzo łatwo mozna napisać kilka linijek kodu które będą się troszczyć o jakieś rozsądne zachowanie skóry w takich sytuacjach.

    Z drugiej jednak zawartość merytoryczą wpisu można było naprawdę zmieścić we wpisie do Twittera. Mogłeś się pokusić o opisanie jeszcze else i w przypadku pustego pola wstawić obrazek zastępczy.

    odpowiedz
  3. Nathan Usarzewicz 7 lat temu:

    Wu-Pe-Chi Triki to mają być w zamyśle właśnie takie króciutkie poradniki, pomocne dla osób, które coś tam kminią, ale potrzebują impulsu, by kminić więcej ;).

    odpowiedz
  4. Szymon Skulimowski 7 lat temu:

    Trochę to niepoprawnie brzmi „Nie zawsze można możemy zagwarantować” :)

    Poprawione – dzięki :-).

    odpowiedz
  5. Szymon Skulimowski 7 lat temu:

    Zamiast if ($obrazek != null) można po prostu dać if ($obrazek) – będzie ciut krócej.

    odpowiedz
  6. Kamil 7 lat temu:

    Witam, wiecie może jaki wpis w bazie danych sql (phpMyAdmin) odpowiada za wyświetlanie obrazków załadowanych przez panel admina WordPress?

    Chodzi mi o to, że przeniosłem WordPressa wg tej instrukcji http://webhosting.pl/Jak.przeniesc.instalacje.Wordpressa.do.nowej.bazy.danych.i.pod.nowy.adres.WWW wszystko jest ok ale jak robię pokaż obrazek to linkuje on wciąż do strony źródła http://www.test.nazwa.pl zamiast http://www.test.pl ;o/

    odpowiedz
  7. levre 7 lat temu:

    Mam pewne pytanie , poniewaz problem który mnie napotkał jest podobny to działania tego skryptu , lecz nie wiem jak go zroobic.

    Mianowicie , mam wpisy chciałbym aby treść wpisów z np (kategori 1) wyświetlała się za pomocą the_excerpt(); zaś treść pozostałych wpisów za pomocą the_content(”); jak podziałać temu czy możecie mi w jakiś spoób pomoc??

    odpowiedz
  8. Lemony. 7 lat temu:

    Ja mam pytanie niedotyczące tego artykułu, ale zadaję je tutaj, bo wydaje mi się, że wszyscy wiedzą jak to zrobić oprócz mnie ;]
    Jak można dodać stronę tak, aby nie pokazywała się w pasku u góry ?
    Pozdrawiam!

    odpowiedz
  9. Szymon Skulimowski 7 lat temu:

    @Kamil,

    wiecie może jaki wpis w bazie danych sql (phpMyAdmin) odpowiada za wyświetlanie obrazków załadowanych przez panel admina WordPress?

    Adresy takie wklepywane są na sztywno więc powinieneś przeszukać bazę danych pod kątem starego adresu i zmienić wszystkie ścieżki (na pewno będzie to tablica wp_posts i kolumna guid oraz post_content).

    odpowiedz
  10. Szymon Skulimowski 7 lat temu:

    @levre,

    Mianowicie , mam wpisy chciałbym aby treść wpisów z np (kategori 1) wyświetlała się za pomocą the_excerpt(); zaś treść pozostałych wpisów za pomocą the_content(”); jak podziałać temu czy możecie mi w jakiś spoób pomoc??

    Możesz zastosować prostą instrukcję warunkową:
    if (in_category(x)) the_excerpt()
    else the_content();

    Gdzie „x” to identyfikator kategorii (znajdziesz go w panelu administracyjnym).

    odpowiedz
  11. Szymon Skulimowski 7 lat temu:

    @Lemony,

    Jak można dodać stronę tak, aby nie pokazywała się w pasku u góry ?

    Najpierw powinieneś sprawdzić w jaki sposób generowana jest lista odnośników (trzeba zajrzeć do odpowiednich plików szablonu graficznego). Jeśli jest to funkcja wp_list_pages to trzeba odnaleźć identyfikator strony, którą chcesz wykluczyć (znajdziesz ją w panelu administracyjnym) a następnie uzupełnić funkcję o parametr „exclude” :

    Exclude Pages From List

    odpowiedz
  12. levre 7 lat temu:

    #Szymon Skulimowski , mam pewien problem z tym co mi podałeś zrobiłem mniej wiecej cos takiego

    i nie działa i nie wiem czemu

    odpowiedz
  13. levre 7 lat temu:

    Szymon Skulimowski , mam pewien problem z tym co mi podałeś zrobiłem mniej wiecej cos takiego

    if (in_category(9))
    the_excerpt()
    else
    the_content();
    endif;

    (przed w kazdym wierszu na poczatku i koncu jest i nie wiem czemu nie działa

    odpowiedz
    1. Paweł Knapek 3 lata temu:

      składnia >> http://pastebin.com/T6GMiRSW

      odpowiedz
  14. Ery 6 lat temu:

    Używam wtyczki: Custom Field Template, i teraz chciałbym zastosować Twoje rozwiązanie sprawdzania pól. Tak np. wstawiam do szablonu pole:

    i teraz jak to połączyć lub wykonać, żaby sprawdzało czy pole jest puste czy nie.

    odpowiedz

Dodaj własny komentarz