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).
Komentarze
Trochę to niepoprawnie brzmi „Nie zawsze można możemy zagwarantować” :)
odpowiedzZ 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.
odpowiedzWu-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 ;).
odpowiedzPoprawione – dzięki :-).
odpowiedzZamiast
odpowiedzif ($obrazek != null)
można po prostu daćif ($obrazek)
– będzie ciut krócej.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/
odpowiedzMam 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??
odpowiedzJa mam pytanie niedotyczące tego artykułu, ale zadaję je tutaj, bo wydaje mi się, że wszyscy wiedzą jak to zrobić oprócz mnie ;]
odpowiedzJak można dodać stronę tak, aby nie pokazywała się w pasku u góry ?
Pozdrawiam!
@Kamil,
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@levre,
Możesz zastosować prostą instrukcję warunkową:
odpowiedzif (in_category(x)) the_excerpt()
else the_content();
Gdzie „x” to identyfikator kategorii (znajdziesz go w panelu administracyjnym).
@Lemony,
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#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
odpowiedzSzymon 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
odpowiedzskładnia >> http://pastebin.com/T6GMiRSW
odpowiedzUż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.
odpowiedzDodaj własny komentarz