Výpis článků z určité kategorie a "custom post type"

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Výpis článků z určité kategorie a "custom post type"

Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel  Twinsen a poslední změna je stará 3 roky, 9 měsíců.

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

    Twinsen
    Participant

    Ahoj,

    delší dobu si lámu hlavu, jak postavit dotaz na výpis článků z určité kategorie (např. s id=1) a custom post type (např. auta).

    Zkouším to nějak takto:

    $query = new WP_Query(array( 'post_type'=>array('post','auta'), tax_query'=>array( array( 'taxonomy'=>'category', 'field'=>'term_id', 'terms'=>array(1) ) ) ));

    ale nedaří se (bez tax_query mi to vrátí všechny články ze všech kategorií na webu i z auta).

    Poradíte?

    #29527

    admin
    Keymaster
    Web

    A pro Custom post type (CPT) auta používáte klasické rubriky (aneb category), které můžete přiřazovat i u příspěvků (aneb post)? Nepoužíváte tam nějakou vlastní taxonomii?

    Co se objeví jako výsledek uvedeného dotazu?

    #29528

    Twinsen
    Participant

    U CPT nepoužívám žádné rubriky (ani taxonomie). Výše uvedený příklad vrátí posty pouze z rubriky a CPT ignoruje.

    #29530

    admin
    Keymaster
    Web

    Aha, takže chcete všechny články z CPT auta + příspěvky post zařazené do nějaké konkrétní rubriky? A to chcete nějak promíchat dohromady? Pomocí samotné WP_Query() to asi nepůjde, ale možností je více:

    1) Pokud se má výsledek zobrazovat samostatně na nějaké vhodné stránce (tedy nejdříve příspěvky a následně auta), tak by šla asi použít akce pre_get_posts na úpravu primární smyčky (loop).

    2) Můžete si také např. pohrát s filtrem posts_where (příklad zde).

    3) Pokud nejde použít primární loop (a nebude to promíchané), tak bude asi vhodné použít dva samostatné dotazy za sebou.

    4) A pokud to potřebujete promíchané, tak budou opět dva samostatné dotazy, s tím že je nakonec spojíte dohromady pomocí array_merge(), ukázka např. zde.

    Existuje i zajímavé řešení s názvem Combined Query, které vypadá velmi dobře a mělo by přesně tento problém vcelku snadno řešit…

    #29535

    Twinsen
    Participant

    Díky za super vyčerpávající odpověď. Ano, potřeboval jsem to promíchat – využil jsem nakonec bodu 4 – i když některé věci tam použité jsou pro mě záhadou (hlavně to pole $defaults, bez toho to nešlo). Ještě jednou díky!

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.