Omezení výpisu příspěvků (např. podle autora, rubriky) na homepage za použití funkce query_posts()

Tato situace se často opakuje, některé rubriky prostě nemají ze své podstaty (např. mnoho krátkých příspěvků) místo na homepage, takže je tam nechcete zobrazovat. Řešení je velmi jednoduché, kdy stačí přidat pouze jeden řádek kódu v šabloně. Protože jde o homepage, musíte upravit soubor index.php v adresáři s šablonou (budu to ukazovat na příkladu defaultní šablony z WordPressu 2.8.4). Najděte místo, kde začíná výpis příspěvků, tedy něco podobného (může se lišit třeba chybějícími uvozovacími php tagy) tomuto kódu:

<?php if(have_posts()) : ?><?php while(have_posts()) : the_post(); ?>

A před tento kód přidejte následující řádek:

<?php query_posts('author=-3&cat=-3'); ?>

Co se přesně stane? Právě jste upravili výpis příspěvků na homepage tak, že se budou zobrazovat všechny příspěvky kromě těch, které jsou v rubrice s ID = 3 a od autora s ID = 3. Jednotlivá ID naleznete v administraci a změňte si je samozřejmě podle svých potřeb. Pokud je tam před nimi znaménko minus, tak jsou z výpisu dané příspěvky vyloučeny a naopak, pokud tam minus nebude, tak se zobrazí příspěvky pouze z této rubriky a od tohoto autora. Každopádně doporučuji prohlédnout manuál, který se všemi parametry funkce query_posts() detailně zabývá.

22 thoughts on “Omezení výpisu příspěvků (např. podle autora, rubriky) na homepage za použití funkce query_posts()”

  1. Skusil som to pouzit v archive.php, kde nechcem vypisovat prispevky v nadradenych categoriach, ale iba v tej, kde som ho zaradil (ak je zaradeny v kategorii, ktora je pod nejakou inou kategoriou). No tam to nefunguje. Stale vypisuje v nadradenej kategorii aj clanky z podriadenych kategorii. Da sa aj tu nejak pomoct?

  2. Riesenie mojho problemu bolo pomerne jednoduche. Namiesto parametra cat je potrebne dat parameter category__in. Ten som v manualy ku query_posts nenasiel, ale bol uvedeny k WP_Query.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *