Snippet na zobrazení příspěvků z určité kategorie na homepage

Upraveno 6 prosince, 2023 00:12

Pokud spravujete blog na WordPressu, občas můžete chtít, aby se na úvodní stránce blogu zobrazovaly pouze články z určité kategorie a ostatní nikoliv. Nativně WordPress pro takové chování žádné nastavení nemá. Samozřejmě byste takové nastavení mohli vyřešit pluginem. Nicméně pokud chcete ušetřit místo i paměť, to samé lehce zvládnete snippetem. Pojďme se tedy podívat jak funguje snippet na zobrazení příspěvků z určité kategorie na homepage.

Snippet na zobrazení příspěvků z určité kategorie na homepage

Nejprve si pojďme ukázat konkrétní snippet. Poté si jej krátce probereme.

				
					<?php
function show_specific_category_posts($query) {
    if ($query->is_home() && $query->is_main_query()) {
        $query->set('category_name', 'nazev_kategorie');
    }
}
add_action('pre_get_posts', 'show_specific_category_posts');
?>

				
			

Tento snippet upravuje dotaz na příspěvky při načítání úvodní stránky (is_home()) a zajišťuje, že se zobrazí pouze příspěvky z určité kategorie.

Popis jednotlivých částí kódu:

  • Funkce show_specific_category_posts: Jedná se o vlastní funkci, která přijímá jediný parametr $query, což je objekt dotazu, který WordPress používá pro načítání příspěvků.
  • Podmínka if ($query->is_home() && $query->is_main_query()): Tato podmínka kontroluje, zda se jedná o úvodní stránku a zda jde o hlavní dotaz načítaný stránkou. To zajišťuje, že tato úprava dotazu se použije pouze na úvodní stránku.
  • Metoda $query->set(‘category_name’, ‘nazev_kategorie’): Tato metoda slouží k nastavení parametru category_name v dotazu. V tomto případě se parametr nastavuje na konkrétní název kategorie, kterou chcete zobrazit. Místo ‘nazev_kategorie‘ musíte dosadit skutečný název požadované kategorie.
    • Pokud chcete použít ID kategorie místo názvu, můžete použít metodu $query->set(‘cat’, ‘ID_kategorie’), kde ‘ID_kategorie‘ je číselná hodnota ID požadované kategorie.
  • Funkce add_action(‘pre_get_posts’, ‘show_specific_category_posts’): Tato funkce registruje akci pre_get_posts a při jejím vyvolání spustí funkci show_specific_category_posts. Akce pre_get_posts se volá před provedením dotazu na příspěvky, umožňuje tak upravit dotaz před načítáním příspěvků.

Aby byl tento snippet funkční, musíte provést následující kroky:

  1. Nahraďte ‘nazev_kategorie‘ skutečným názvem kategorie, kterou chcete zobrazit. Můžete také použít ID kategorie pomocí metody $query->set(‘cat’, ‘ID_kategorie’).
  2. Přidejte tento kód do souboru functions.php ve vašem aktuálním WordPress tématu (šabloně vzhledu). Můžete použít editor souborů ve WordPress administraci, nebo přistupovat k souboru přes FTP.

Tímto způsobem bude úvodní stránka načítat příspěvky pouze z dané kategorie.

Web je vytvářen s pečlivostí k obsaženým informacím. Snažím se poskytovat kvalitní a užitečný obsah, který ostatním pomáhá, nebo je inspiruje. Pokud jste spokojeni s mou prací a chtěli byste mě podpořit, můžete to udělat prostřednictvím jednoduchých možností.

Byl pro Vás tento článek užitečný?

Klikni na počet hvězd pro hlasování.

Průměrné hodnocení. 0 / 5. Počet hlasování: 0

Zatím nehodnoceno! Buďte první

Jak užitečný vidíte tento článek.

Sledujte mě na sociálních médiích.

Je mi líto, že pro Vás nebyl článek užitečný.

Jak mohu vylepšit článek?

Řekněte mi, jak jej mohu zlepšit.

newsletter

Odebírejte Newsletter

Buďte v obraze! Připojte se k odběru newsletteru a buďte první, kdo získá nejnovější informace přímo do vaší e-mailové schránky. Sledujte aktuality, exkluzivní události a inspirativní obsah, přímo na Vašem e-mailu.  

Odebírat
Upozornit na
guest
0 Komentáře/ů
Vložené zpětné vazby.
Zobrazit všechny komentáře.

Pokud mi chcete napsat rychlou zprávu, využije, prosím, níže uvedený
kontaktní formulář. Děkuji.

Další Kontaktní údaje