WordPress — вывод последних страниц (записей) родительской страницы (рубрики)

0
1211

Выведем в любом месте сайта (через шорткод) нужное количество последних страниц (записей) родительской страницы (рубрики). В файле functions.php пропишем следующий код:

function wpschool_recent_posts_shortcode( $atts, $content = null ) {
    global $post;
    $post_id = get_the_ID();

    $stati_children = new WP_Query(array(
            'post_type' => 'page',
            //'post_parent' => get_the_ID(),
            'post_parent' => wp_get_post_parent_id($post_id),
            'orderby' => 'rand',
            //'order' => 'ASC',
            'posts_per_page' => 3
        )
    );
    
    $output ='<div class="pages-wrap">';
    if($stati_children->have_posts()) :
        while($stati_children->have_posts()): $stati_children->the_post();

        $output .= '<ul><li><div class="last-pages-img"><a href="'. get_the_permalink() .'"><img src="'.get_the_post_thumbnail_url( get_the_id() ) .'"></a></div><p><a href="'. get_the_permalink() .'">'. get_the_title() .'</a></p></li></ul>';
        
        endwhile;
    endif; wp_reset_query();
    $output .='</div>';
    return $output;
}
add_shortcode( 'recent_posts', 'wpschool_recent_posts_shortcode' );

В строке ‘post_parent’ => wp_get_post_parent_id($post_id),

 

$post_id — это id текущей страницы (записи)
wp_get_post_parent_id() — wordpress функция, которая получает id родительской категории по отношению к определенной страницы (записи)

‘post_type’ => ‘page’, — указывает что мы выводим, page — страницы, post — записи

‘orderby’ => ‘rand’, — означает что выводить будем в случайном порядке

‘posts_per_page’ => 3 — сколько выводим страниц (записей)

 

Добавим немного стилей файл css:

.pages-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.pages-wrap ul {
    max-width: 335px;
    list-style: none;
    margin-top: 10px;
}
.pages-wrap p{
    margin-top: 20px;
    font-family: Montserrat;
    font-style: normal;
    font-weight: 600;
    font-size: 16px;
    line-height: 140%;

}
.pages-wrap p a {
    color: #3F484F;
}

 

Теперь, вставив такой шорткод [recent_posts] в любом месте сайта, получим примерно такой вид:

 

 

 

 

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here