Při tvorbě webu se můžete setkat s případem, kde například dolů pod článek / produkt či cokoliv dalšího chcete vygenerovat další podobné posty z kategorie, ve které se nachází aktuální článek / produkt. Tato funkcionalita není nějak obtížná, v podstatě v query stačí nastavení viz tento obrázek.

Problém však nastavá v případě, když existují dvě hlavní kategorie (v mém případě tvořím katalog na materiály, kde jsou hlavní kategorie Pryže a Polyurethan), kde tyto kategorie obsahují totožnou podkategorii – například EBD.
Klasické nastavení viz obrázek nebude fungovat správně, jelikož v detailu materiálu XXX (který se nachází v podkategorii EBD) budou další podobné materiály jak z podkategorie EBD, která spadá pod Pryže, tak i z podkategorie EBD, která spodá pod Polyurethan. Jednoduše řečeno, budou tam všech materiály, které mají přiřazenou kategorii EBD z celého webu, což není správně. Pryžové materiály EBD jsou totiž naprosto rozdílné od Polyurethanu.
Jak toto tedy vyřešit? V podstatě stačí v query (hned nahoře) zapnout „Query editor (PHP)“ a tam vložit kód níže. Zde ještě upozorním, že kód je na moje vlastně vytvořené CPT (material) + taxonomie (kategorie). Tyto hodnoty je potřeba v kódu upravit.
return [
'post_type' => 'material', // Zde přepsat na váš CPT
'posts_per_page' => 8, // počet vypsaných příspěvků
'post__not_in' => [ get_the_ID() ], // vyloučí aktuální post
'tax_query' => [
[
'taxonomy' => 'kategorie', // název vaší taxonomie
'field' => 'term_id',
'terms' => wp_get_post_terms( get_the_ID(), 'kategorie', ['fields' => 'ids'] ),
]
]
];