Warning: fopen(/63b820e3d5622d59a1e9cc03f9fb193c352b12b8) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/7d50b94dae22d7050c56ac9b2513e89d2456ff34) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/b1a9a92a15e419b8a9ab5ed802026b48780af797) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/44d72fd16c2630bb115cd584f401025f7f5a88c9) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/b24e95e3f7d7045f1264e6cf5163d2538972c8f6) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/97a896f40a22e16e3c752447212a331a9ea81ce6) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/e999c31786d74c719c3150b784126321ac46fd75) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/84800bfeb88238bcb3052783d16ff8a917d0fbf0) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Warning: fopen(/6d2e168747db579c9a2757946c10f98ca842f741) [function.fopen]: failed to open stream: Permission denied in /home/klient.dhosting.pl/damek/damek.eu/public_html/wp-content/plugins/fv-code-highlighter/Includes/Cache.php on line 69
Ten krótki i zarazem prosty poradnik pokaże w jaki sposób wyświetlić wpisy tylko z jednej kategorii. Przy okazji także jak ustawić ilość wyświetlanych wpisów niezależnie od tego jaką mamy ustawioną w ustawieniach wordpressa w panelu administracyjnym
Funkcja query posts jest bardzo przydatna. Można ją zastosować w wielu przypadkach, na przykład wtedy gdy poszczególne wpisy chcemy wyświetlać w zakładkach odpowiadających ich kategoriom. Pozwoli nam również na wyciągnięcie wpisów z jakiejś kategorii na stronę statyczną.
Pierwszą rzeczą jaką musimy zrobić jest znalezenie pętli odpowiadającej za wyświetlanie wpisów. Znajduje się ona w pliku index.php i rozpoczyna w ten sposób:
1
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
» Wyświetlenie wpisów z jednej kategorii
Gdy już ją odnajdziemy to dokładnie przed nią musimy wkleić taki oto kod php:
1
<?php query_posts($query_string . '&cat=4'); ?>
4 odpowiada tutaj ID kategorii wpisów.
Jeśli chcesz sprawdzić, jakie id ma kategoria z której tylko wpisy chcesz umieścić to zaloguj się do panelu administracyjnego, wejdź w zarządzanie kategoriami wpisów i kliknij “edytuj” przy kategorii, która Cię interesuje. Spójrz teraz na pasek adresu, na końcu będzie:
...categories.php?action=edit&cat_ID=5
5 jest tutaj właśnie ID Twojej kategorii. Jeśli chcesz możesz też posłużyć się nazwą kategorii, wtedy musisz wpisać:
1
<?php query_posts('category_name=Nazwa kategorii'); ?>
» Wyświetlenie wpisów z kilku wybranych kategorii
Możemy też wyświetlić wpisy na przykład z dwóch albo trzech wybranych kategorii. Zrobimy to w ten sposób podając po przecinku ID kategorii.
1
<?php query_posts('cat=2,6,17,38'); ?>
» Wykluczanie wpisów z wybranej kategorii
Jeśli chcemy możemy też zrobić tak by były wyświetlane wpisy ze wszystkich kategorii oprócz jednej, której ID podamy w tym kodzie:
1
<?php query_posts('cat=-4'); ?>
» Określenie liczby wpisów na jednej stronie
Jeśli chcesz by każda kategoria miła inną liczbę wpisów wyświetlanych na jednej stronie, niezależnie od tego co ustawiłeś w panelu administracyjnym to dopisz:
1
<?php query_posts($query_string . '&cat=4&posts_per_page=15'); ?>
15 to liczba wpisów, które będą wyświetlone na jednej stronie.
» Wyświetlenie wpisów o konkretnym tagu
Aby wyświetlić wszystkie wpisy opisane jakimś tagiem wystarczy wpisać go w poniższy kod.
1
<?php query_posts('tag=twoj tag');?>
Żeby wyświetlić wpisy z dwóch tagów jednocześnie, wystarczy oddzielić je przecinkiem
» Wyświetlanie wpisów konkretnego autora
Sposób na wyświetlenie wpisów jednego autora:
1
<?php query_posts('author=3');?>
lub gdy chcemy podać nazwę autora:
1
<?php query_posts('author_name=Damian');?>
» Więcej opcji
To są moim zdaniem najprzydatniejsze funkcje, które mogą się przydać. Więcej znajdziecie tutaj.




Zostaw swój komentarz




18 Komentarzy
Bardzo podobnie działa klasa WP_Query którą od pewnego czasu można zastąpić rozwiązania oparte na query_posts. O jednej z możliwości, która akurat mi się przydała piszę w tym artykule: http://blog.kowalczyk.cc/2010/03/19/wordpress-wykluczanie-kategorii-wpisow-w-zapytaniu-wp_query/ Mam nadzieję, że przyda się w ramach uzupełnienia artykułu.
@Tomasz
na pewno :)
Wstawienie tej funkcji do index.php powoduje ze okreslone wyniki wyświetlają się lub nie wyświetlają na głównej stronie.
Ale nikt nie potrafi powiedziec co robić żeby wpisy z 1 kategorii wyświetlały się na podstronie (nie głownej). Jak utworze strone w panelu i wkleję tą funkcję to nie działa.
Sorki ale wyrazilam sie chyba niejasno powyżej.
chcialabym stworzyć strony statyczne na wordpresie, na ktorych wyswietlalyby sie wpisy z poszczegolnych kategorii.
Jak to zrobic?
Możesz zrobić zwykłą stronę statyczną w htmlu, zapisać ją potem jako .php i zaraz po “body” wstawić:
< ?php require_once('wp-load.php') ?>
Ta linijka kodu pozwoli Ci na korzystanie z funkcji wordpressa na takiej stronie statycznej. Możesz użyć teraz pętli i funkcji query posts
< ?php query_posts($query_string . '&cat=4'); ?>
< ?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
[miejsce na wpisy]
< ?php endwhile; else: ?>
< ?php _e('Żaden wpis nie spełnia kryteriów.'); ?>
< ?php endif; ?>
Oczywiście możesz też używać wszystkich innych funkcji od wyświetlania daty, autora, tagów itd.
Ale dużo lepiej będzie zrobić chyba własny szablon strony, który potem będzie można wybrać podczas dodawania nowej strony w panelu admina. Tam w szablonie możesz wyświetlić sobie wpisy z danej kategorii funkcją query posts.
Jak go zrobić dowiesz się tutaj:
http://codex.wordpress.org/Pages_Add_New_SubPanel
Dzięki!!!!
Dowiedziałam się, że jest coś takiego jak osobny szablon dla stron. Przeczytałam dokumentacje, zrobiłam szablon. Szablon pojawił się w formularzu wyboru nowej strony – na razie OK.
Konkretnie zajmuje się blogiem organizacji opieki nad zwierzetami i chcialam zrobic strone wyswietlającą koty do adopcji – wpisy z tej kategorii
moja znajomosc php jest bardzo podstawowa, wiec po prostu przekleilam fragment kodu z codex.wordpress.org, który ma tworzyć stronę z wpisami, wstawiłam odpowiednio nazwe kategorii.
i nic sie nie wyswietla – pusta strona
przekleilam Twój kod podany powyżej, wpisałam dobry numer kategorii i też NIC – pojawia się napis [miejsce na wpisy]
gdyby mi ktos mogł w tym pomóc to byłoby super bo usiłuję się tego nauczyć
Rozwiązałam problem choć na zasadzie cepa bo inaczej nie umiem.
Na stronie http://codex.wordpress.org/Pages_Add_New_SubPanel#Examples
jest opisane jak się robi szablon strony. Z tym nie ma problemu. Tylko co potem wpisać do środka.
Na żywca wkleiłam podany tam przykład strony z wpisami. Następnie, jak napisali, ustawiłam pole w ustawieniach danej strony. I działa!!!
[...] post: WordPress – funkcja query posts – damek.eu Tags: wp_tworzenie_skorki, [...]
[...] rozwiązać ten problem jest potrzebna znajomość funkcji query_post, bo moje rozwiązanie to nic innego jak odpowiednio zmodyfikowana ta właśnie funkcja. Dodatkowo [...]
[...] Funkcja query_post – damek.eu [...]
Trochę mi to pomogło. Dziękuję.
witam, wcześniej używałem tej funkcji do wyświetlenie wpisów z konkretnej kategorii tylko na danej podstronie, teraz zaktualizowałem WordPress do wersji 3.2.1 i mi to nie działa …
Wie ktoś jak to rozwiązanie powinno wyglądać w najnowszym wordpressie ?
Proszę o info na email raul1984@interia.pl , z góry dziekuję
witam, wyświetlanie linków tylko z kategorii na danej podstronie już mi działa, z tym że mam problem, a mianowicie:
1) dodawane wpisy nie mają swoich odnośników, każdy linkuje na stronę główną
2) nie można dodawać komentarzy do tych wpisów
Proszę o pomoc
nikt nie pomoże ?
[...] Jeśli pierwszy raz edytujesz szablon WordPressa i nie miałeś styczności z funkcją query_post() polecam zapoznać się z poradnikiem Damiana Sochackiego- WordPress-funckja query_post [...]
miałem styczność z tą funkcją, problem w tym , że we wcześniejszej wersji WordPress wszystko było ok, a teraz już nie
Nawet nie wiesz ile szukalem tych informacji rozwiazalo mi to moj meczacy problem Wielkie Dzieki
Hej, a w jaki sposób użyć tego kodu aby wyswietlic tylko jeden najnowszy post tj. ten ktory zawsze jest najnowszy?
Użycie kategori raczej odpada choć w ostateczności to by trzebabyło zastosowac.
Lecz gdy opublikuje nowy post ten co miał dana kategoie jako nowy juz nie będzei nowy.
Ciągłe zmienianie w kodzie oraz kategorii odpada.