Články ze stejné a nadřazené kategorie


$categ = get_the_category($post->ID);
$not = array($post->ID);

$my_query3 = new WP_Query(array('cat' => $categ[0]->term_id,
            'posts_per_page' => 3,
            'orderby' => 'rand',
            'post__not_in' => $not));
while ($my_query3->have_posts()) {
    $my_query3->the_post();
    echo "<a href='";
    the_permalink();
    echo "'>" . get_the_title() . "</a>";
    $not[] = get_the_ID();
}

$my_query2 = new WP_Query(array('cat' => $categ[0]->parent,
            'posts_per_page' => 3,
            'orderby' => 'rand',
            'post__not_in' => $not));
while ($my_query2->have_posts()) {
    $my_query2->the_post();
    echo "<a href='";
    the_permalink();
    echo "'>" . get_the_title() . "</a>";
}

Celé to funguje tak, že id každého načteného článku se uloží do proměnné not a jejich zobrazování se následně zakáže v dalším vypisování. Pokud máte nějaké dotazy nebo si nevíte rady s přesným provedením, tak můžete zanechat komentář.