Jak wyświetlać na blogu dokładnie to co chcemy?
Wpis z dnia 10.01.2006, umieszczony w kategorii "Wordpress".
Czasami zdaża się, że np. na stronie głównej chcemy wyświetlić tylko posty z określonej kategorii, albo rozmieścić je w niestandardowy sposób. WordPress daje nam także w tym przypadku bardzo dużo możliwości.
Przykład takiej niestandardowej strony głównej można zobaczyć na http://news.biskupiak.net/. Zajmijmy się sposobami na dostosowanie WordPress’owego Loop’a do naszych potrzeb.
Jeśli chcemy wyświetlić na stronie głównej lub jakimkolwiek archiwum posty tylko z jednej kategorii, wystarczy że po instrukcji (która rozpoczyna pętlę):
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
dodamy:
<?php if (in_category('news')) { ?>
W tym przykładzie zostaną wyświetlone tylko wpisy z kategorii o znaczniku `news`, zamiast znacznika można podać też pełną nazwę kategorii lub jej `ID`.
Oczywiście musimy pamiętać o zamknięciu konstrukcji warunkowej, a więc przed:
<?php endwhile; else: ?>
dodajemy:
<?php } ?>
Jeszcze większe możliwości daje nam funkcja `query_posts`, przykład:
<? $posts = query_posts('cat=1,2,5&showposts=2'); ?>
Taką instrukcję umieszczamy przed rozpoczęciem pętli. Instrukcja przykładowa ogranicza wyświetlanie wpisów w pętli do kategorii `1,2,5` - dodatkowo parametr `showposts`, jak sama nazwa wskazuje, określa ile postów ma zostać wyświetlonych (niezależnie od głównych ustawień bloga!).
— 10/01/2006



10.01.2006, 18:21
I za to tak bardzo lubię WP
02.02.2006, 20:32
A u mnie nie działa
tzn. nic się nie wyświetla po uruchomieniu.
23.07.2006, 17:28
Jeśli Ci się nic nie wyswietla zmień nazwę na id kategorii.
Ogólnie dziękuje autorowi za ten tips.
pozdrawiam
13.09.2006, 16:05
U mnie niezależnie czy wpiszę ID czy nazwę kategorii to znika wszystko wewnątrz strony - wszystkie wpisy i strony statyczne są niewidoczne tzn. widać normalnie header, sidebar i footer a newsów i tekstów na stronach statycznych brak. Zależy mi żeby mieć jeden stały tekst na głównej. Modyfikuję theme City Life. Będę wdzięczny za jakieś sugestie
04.10.2006, 12:46
Może to Ci pomoże: http://codex.wordpress.org/Category_Templates
31.10.2006, 18:51
zgłasza bład
31.10.2006, 18:52
zgłasza sie bład w składni
31.10.2006, 19:27
Tzn. gdzie zgłasza? Bo nie do końca rozumiem.
31.10.2006, 20:02
chcialem wkleic kawalek kodu. ale sie nie daje…
jesli dodaje ?php }? pokazuje sie bład w tej linji
zreszta petla u mnie w pliku index kończy sie ?php endif; ? a nie ?php endwhile; else: ?
31.10.2006, 20:15
troche bałagan zrobilem w tych komentarzach. ale jaki paramet jest odpowiedzialny za wyswietlanie odp. kategorii na stronie głównej ?
19.11.2006, 16:42
Dobry post. Bardzo przydatny. Gdyby nie ta strona nie wiem ile bym się męczył nad spisem postów z danej kategori
Pozdro dla autora :>
06.03.2007, 13:01
Tworzę stronę w dwóch językach. W przyszłości dojdą kolejne. Każdy język ustawiłem jako osobną kategorię. Chciałbym na pasku bocznym zrobić opcję “Ostatnio dodano” ale w taki sposób, by pojawiało się 10 nowości z każdej kategorii językowej, np. “Wpisy polskie”.
Tak wygląda fragment kodu dla pokazywania się wszystkich kategorii w jednym spisie nowości:
Ostatnio dodano
A jak ten kod zmienić, by pokazywały się tylko nowe wpisy z jednej kategorii a nie wszystkich? By efekt końcowy był taki:
Ostatnio dodano (Język polski)
- Wpis 1
- Wpis 2
- Wpis 3 (itd., aż do 10)
Ostatnio dodano (Pyccкий язык)
- Запис 1
- Запис 2
- Запис 3 (aż do nr 10)
Itd,. itp.
Liczę na odpowiedź, bo pytałęm w wielu miejscach, ale nikt nie potrafi pomóc. Czyżby WordPress był pod tym kątem ograniczony? Czy tylko nikt taką opcją się nie interesował.
06.03.2007, 13:04
Jak na pasku bocznym wyświetlić “Najnowszych 10 wpisów” z pojedynczej aktegorii (a nie wszystkie naraz)? By wyglądało to tak:
Ekonomia:
-Wpis 1
-Wpis 2
-Wpis 3 (itd. az do 10)
Kultura:
-Wpis 1
-Wpis 2
-Wpis 3 (itd. az do 10)
Itd. a nie tak jak na twojej stronie, że wszystkie kategorie są wrzucone do jednego działu “Najnowsze wpisy”
06.03.2007, 22:21
Funkcja
query_posts()pozwala nam na wybranie kategorii, z których chcemy “wyciągnąć” posty.Np.
query_posts('cat=1&showposts=2');wyciągnie 2 najnowsze posty z kategorii o ID = 1.07.03.2007, 5:54
Wkleiłem analogicznie kod z eksperymentalnym nagłówkiem “Eksperyment”
Eksperyment
I nic. Widać tylko napis tytułowy “Eksperyment” i niczego poniżej nie wyświetla. A w kategorii “ID=1″ mam ponad 70 wpisów. Zerknij na moją stronę (patrz adres przy nicku i e-mailu) i sam zobacz. Przygotowuję stronę dla kilku wersji językowych i wpisy z każdego języka są osobną kategorią. I dlatego zależy mi, by każda wersja miała osobne menu “Ostatnio dodano”. Może coś nie tak wpisałem do kodu albo brakuje jakiegos pliku który trzeba przenieść z innej templatki? Mam WordPressa 2.1.1
07.03.2007, 11:25
Niestety zabawa w tego typu modyfikacje WP wymaga znajomości PHP i to trochę większej niż podstawowa.
query_posts()trzeba dodać przed pętlą< ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>. Poza tym samodzielnie trzeba się zatroszczyć o wyświetlanie listy z tymi wpisami.WP daje ogromne możliwości, ale by osiągnąć dobre efekty trzeba znać PHP, XHTML i CSS oraz wczytywać się uważnie w Codex.
07.03.2007, 13:19
Wkleiłem przed w pliku “index”, a w pasku bocznym wkleiłem to co przedtem, i nie działa. Chyba nic z tego mi nie wyjdzie. Mimo to dziękuję za poświęcony czas. Gdybyś jednak chciał dokładnie pomóc (przysyłając gotowy kod do wklejenia w wyznaczone miejsce, daj znać. Ewentualnie podesłałbym kod mojej templatki).
Pozdrawiam:
Załamany kosmita - lamiarz totalny
PS. Coś ci źle wyświetla templatka linki przy nickach w komentarzach. Zamiast mojej strony wyświetla się adres e-mail ale bez @. Chyba jakiś błąd.
07.03.2007, 16:57
W pierwszym komentarzu musiałeś wpisać e-mail w złe pole, bo w kolejnych jest wszystko OK.
12.03.2007, 16:03
Udało mi się! Wiem gdzie zrobiłem błąd. Bo wklejałem opcję query_post(); przed ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ? na stronie głównej “index” a nie na pasku bocznym w pożądanym miejscu. Jakby ktoś miał z tym problemy, niech wklei kod:
?php query_posts(’cat=1&showposts=2′); // dwa ostatnie posty z pierwszej kategorii
if (have_posts()) : while (have_posts()) : the_post(); ?
12.03.2007, 16:10
Oj. zrobiłęm próbę i okazuje się, że trzeba jeszcze coś dopisać, poza query_posts() i resztą wymienioną. A mianowicie (tam gdzie * trzeba wstawić ostry nawias przedni, gdzie # ostry nawias tylny - daję te zamienniki znaków, bo widzę że w moich poprzednich komentarzach znikały):
*ul#
*?php query_posts(’cat=1&showposts=2′); // dwa posty z pierwszej kategorii
if (have_posts()) : while (have_posts()) : the_post(); ?#
*li#*a href=”*?php the_permalink() ?#”#
*?php the_title() ?#
*/a#*/li#
*?php endwhile; endif; ?#
*/ul#
Nie mam pojęcia dlaczego to działa (w końcu jestem lama, nie?) ale działa!
16.03.2007, 12:25
PYTANIE 1:
Czy istnieje możliwość, aby w przypadku ww. podziału kategorii pierwszy (dzięki Kosmito za kod, jest super!), najświeższy link był pogrubiony i z krótkim wstępem? Zastanawiam się nad uruchomieniem portalu niekomercyjnego opartego na WP. Tak jak to wygląda na Onecie czy Wirtualnej Polsce (czyli jeden news ze zdjęciem i krótki opis, a potem same tytuły innych nowości). Czy to mozliwe?
PYTANIE 2:
Co zrobić, aby na pierwsza strona wyglądała inaczej niż podstrony tematyczne? Tzn. aby np. na pierwszej stronie inaczej rozmieścić układ elementów strony (np. dodać wyszukiwarkę google, mapkę pogody, i jeden główny temat dnia, a pod spodem np. trzy kolumenki kategorii tematycznych? Bo na razie jak zmieniam wygląd szaty strony głównej to wszelkie zmiany widoczne są na podstronach. Jak zrobić osobny szablon strony, aby osobno była szata strony głównej a osobno szata strony tematycznej?
16.03.2007, 17:35
Ad. 1. Oczywiście jest to możliwe. (Jeśli zna się PHP)
Ad. 2. Kwestie theme’ów WP są szczegółowo opisane na codex.wordpress.org, jest to obszerna tematyka, więc tutaj tylko zasygnalizuję, że oczywiście wszystko o czym piszesz da się zrobić.
17.03.2007, 7:25
Znalazłem super templatki Vertigo, które doskonale nadają się do mojego projektu po drobnej przeróbce. Ale mam kilka prostych problemów i prosiłbym o konkretną poradę (jeśli to nie kłopot):
1. Co zrobić, żeby na stronie głównej nie pojawiał się pasek boczny? Albo żeby pasek boczny zawierał inne menu niż pasek na podstronach? (interesuje mnie to co łatwiej zrobić)
2. Co zrobić, żeby na stronie głównej i na podstronach, nie pojawiała się treść wpisów, lecz sam tytuł z opisem? Dopiero po kliknięciu na artykuł pojawiłby się cały artykuł. Chodzi o wyłączenie pokazywania całego wpisu lub skrótu wpisu na stronie głównej i na podstronach.
3. Jaki trzeba wpisać kod w php, aby na stronie głównej pojawiło się coś, co nie będzie pojawiać się na podstronach? Chodzi mi o mapkę pogody i przeglądarkę google.
Nistety, z rady zaglądania do Codexu nie skorzystam, bo nie znam angielskiego. Chyba, że znasz adres polskiego tłumaczenia.
17.03.2007, 19:56
Nie musisz odpisywac na poprzedni wpis. Już sobie poradziłem bo znalazłem odpowiednią templatkę oraz zrozumiałem, że “index” to nie jest strona startowa w WP, tylko jest nią “home” (idiotyzm, jakby podstrona nie mogła się nazywać np. index2″ a strona główna “index”?). Znalazłem też opcje opisów i podpatrzyłem kodowanie i nie mam problemów o któych wyżej pisałem. Dodałem mapkę pogody i przeglądarkę google. Ale mam dwie rzeczy, których nie potrafię przejść.
1. Poszukuję pluginu do WP z możliwością dodawania nowych newsów przez nie zarejestrowanych użytkowników.
Nie chcę udostępniać rejestracji, szukam takiego rozwiązania:
- strona główna, link - dodaj newsa
- użytkownikowi w nowym oknie otwiera się strona z edytorem oraz z możliwością przesyłania fotek na serwer, wyboru kategorii (lub dodania nowej) etc.
- po wklepaniu newsa, oczekuje on na akceptację/edycję admina
- no i jest aktywny
Czy znasz jakiegoś odpowiedniego plugina?
2. Chciałbym, aby pod opisem newsa pojawił się link “Czytaj więcej…” Na razie linkiem do całości jest tytuł, ale nie wszyscy internauci się połapią (zwłaszcza starsi). Czy jest jakas komenda php, która pozwala na taki link na końcu opisu?
I to by było na tyle. Jak te problemy rozwiążę, będę mógł startować z niezależnym, anarchistycznym serwisem w stylu Indymediów. Pozdarwiam i liczę na odpowiedź.
17.03.2007, 20:35
1. Usunąć
< ?php get_sidebar(); ?>. (chociaż być może w tym themie jest to rozwiązane inaczej).2. Usunąć funkcję
the_content()skąd jej nie chcemy.3. Tu nie trzeba specjalnego kodu PHP. Trzeba tylko wiedzieć, że za szablon dla strony głównej odpowiada index.php a dla innych stron są inne szablony.
19.03.2007, 5:49
W górnym pasku menu (w nagłówku) umieściłem kategorie tematyczne serwisu. Jak się kliknie wchodzi się do kategorii i pojawiają się najświeższe wpisy. Szukam komendy, która pozwoliłaby mi nad wpisami umieścić nazwę kategorii. Aby użytkownik wiedział na jakiej podstronie tematycznej jest.
No i ponawiam pytanie odnośnie formularza pozawlającego dodawać newsy niezarejestrowanym użytkownikom, które trafią do poczekalni na akceptację.
Tutaj próbka nowego serwisu - na razie eksperymentalnie i bez nazwy (nad nazwą jeszcze myślę): http://informacje.dl.pl/
19.03.2007, 5:52
Nie wiem, czy poprzedni wpis, sprzed chwili doszedł bo zapomniałem wpisać autora i e-mail (jakby co to go wywal).
Mam dwa pytania: jak zrobić by po kliknięciu w kategorię tematyczną pojawił się napis tytułowy kategorii tematycznej? Aby użytkownik wiedział na której podstronie jest.
Ponawiam zapytanie o wtyczkę lub coś, co pozwoliłoby mi stworzyć formularz dodawania newsów dla niezarejestrowanych użytkowników, które przed opublikowaniem trafiałyby do poczekalni na akceptację.
Tutaj adres roboczy mojego niekomercyjnego serwisu: http://informacje.dl.pl/
20.03.2007, 10:53
A w jaki sposób zrobić, zeby na stronie głównej wyświetlały się posty ze wszystkich kategorii, za wyjątkiem jednej, wybranej kategorii?
20.06.2007, 22:31
Mam prosbe co zrobic aby wpisane przez odwiedzajacych komentarze (wypowiedzi) byly odrazu widoczne tak jak u ciebie? U mnie jest tak ,ze trzeba kliknac w
np. “jest 1 komentarz” zeby go przeczytać
28.09.2007, 16:25
Nic z tego nie rozumiem a tak bardzo potrzebuję mieć posty podzielone na kategorie. Proszę niech ktoś mi to jakoś wytłumazy. Bo ja nie wiem jak to trzeba zrobi. Proszę
28.09.2007, 20:21
Proszę napiszcie mi jak to mam zrobić, bo ja tego nie rozumiem. Proszę
29.09.2007, 10:30
Napiszccie to jakoś bardziej zrozumiale. Proszę napiszcie bardzo tego potrzebuję!!!!
05.10.2007, 13:35
Świetna porada. Wszedzie szukałem coś na ten temat, a tu jest wszystko, szybko i konkretnie.
14.08.2009, 6:44
Porada rewelacja, a wie ktoś jak wyświetlić 6 wpisów zaczynając od czwartego aby po zmianie strony na dole 1,2,3,4 zmieniały się tez wpisy ponieważ teraz mam ale wyświetla mi się cały czas te same wpisy