Výpis všech podkategorií a jejich příspěvků

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Výpis všech podkategorií a jejich příspěvků

Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel  admin a poslední změna je stará 9 let.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)
  • Autor
    Příspěvky
  • #22453

    Karlinho
    Participant
    Web

    Dobrý den,

    řeším teď jednu zajímavou věc ve WP a nevím si rady s následujícím výpisem příspěvků:

    Mám kategorii např. Aktuality a v ní několik podkategorií (Z domova, Ze světa…), v každé několik článků. Chtěl bych mít na hlavní stránce vypsány všechny podkategorie a všechny jejich příspěvky:

    Z domova

    – Nadpis 1. Článku
    — Obsah 1. Článku

    – Nadpis 2. Článku
    — Obsah 2. Článku

    Ze světa

    -Nadpis 1. Článku
    — Obsah 1. Článku

    -Nadpis 2. Článku
    — Obsah 2. Článku

    -Nadpis 3. Článku
    — Obsah 3. Článku

    Samozřejmě s tím, že když přidám novou podkategorii, tak se vypíše i se všemi příspěvky.

    Snad to bude jasné, děkuji za každou radu, jak na to.

    #22460

    admin
    Keymaster
    Web

    Budete muset nejdříve získat rubriky pomocí funkce get_categories() (můžete využít spoustu parametrů pro vhodný výběr rubrik). A následně získané rubriky projít cyklem a pro každou udělat vlastní dotaz a pomocí WP_Query() a příspěvky nechat projít cyklem (loop).

    Duplicitní dotaz je zde.

    #22466

    Karlinho
    Participant
    Web

    Děkuji za správné nasměrování, už mám funkční kód, jen bych potřeboval ještě jednu drobnější úpravu – aby se mi nadpis dané podkategorie zobrazoval jen jednou, nikoliv u každého nadpisu příspěvku. Jak bych to mohl omezit?

    Děkuji

    <?php  $cats = get_categories('child_of=6'); 
    
    foreach ($cats as $cat) :
    
      $args = array(
      'category__in' => array($cat->term_id)
      );
      $my_query = new WP_Query($args); 
    
    if ($my_query->have_posts()) : 
    while ($my_query->have_posts()) : $my_query->the_post(); 
    
        echo '<p><a href="' . get_category_link( $cat->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $cat->name ) . '" ' . '>' . $cat->name.'</a> '. $cat->count;'</p>'; ?><p>
    <strong><a href="<?php the_permalink()?>"><?php the_title()?></a></strong></p><br />
    	                           <?php the_content(); ?>
    <?php endwhile; ?>
    
    <?php else : endif; endforeach; ?>
    #22467

    Karlinho
    Participant
    Web

    Tak už jsem na to došel, odpoledne to vyladím a hodím sem kód ;)

    #22474

    admin
    Keymaster
    Web

    Přesně tak, můžete si tam dát třeba jednoduchou proměnnou jako počítadlo, které bude při každém průchodu smyčkou přičítat jedničku a pouze pokud se bude hodnota rovnat jedné, tak zobrazíte název rubriky. Stejná hodnota by také měla být i přímo v rámci objektu $my_query, konkrétně $my_query->current_post.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti