Статьи

Совет: после контента — больше из этой категории

У вас есть четкая конструкция категорий в вашем блоге? Если это так, вам может вообще не понадобиться раздел «Связанные посты» — вы можете просто отображать последние посты из той же категории.

В этом посте мы рассмотрим раздел «Больше из этой категории», альтернативу «Связанным постам» (о которых мы говорили ранее ).


Если вы хорошо организовываете свои посты по категориям, вам может быть полезно иметь список постов из категории постов.

«Связанные посты» не всегда являются ответом: если у вас есть веб-сайт, на котором посты разделены по категориям, раздел «Связанные посты» может «нарушить» это разделение.

Например, если у вас есть блог о различных профессиональных группах, вы не можете показывать новости о текстильной отрасли как «Связанные новости» под постом об информатике. Ряд последних сообщений из той же категории будет более актуальным, верно?

Как вы уже догадались, перечислить последние посты из категории поста будет намного проще, чем отображать похожие посты на основе тегов поста. Нам просто нужно получить категорию поста и перечислить количество постов из этой категории, исключая пост, который посетители только что прочитали. Аргументы, которые мы можем передать в функции get_posts() все, что нам нужно.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
// «More from This Category» list by Barış Ünver @ Wptuts+
function wptuts_more_from_cat( $title = «More From This Category:» ) {
    global $post;
    // We should get the first category of the post
    $categories = get_the_category( $post->ID );
    $first_cat = $categories[0]->cat_ID;
    // Let’s start the $output by displaying the title and opening the <ul>
    $output = ‘<div id=»more-from-cat»><h3>’ .
    // The arguments of the post list!
    $args = array(
        // It should be in the first category of our post:
        ‘category__in’ => array( $first_cat ),
        // Our post should NOT be in the list:
        ‘post__not_in’ => array( $post->ID ),
        // …And it should fetch 5 posts — you can change this number if you like:
        ‘posts_per_page’ => 5
    );
    // The get_posts() function
    $posts = get_posts( $args );
    if( $posts ) {
        $output .= ‘<ul>’;
        // Let’s start the loop!
        foreach( $posts as $post ) {
            setup_postdata( $post );
            $post_title = get_the_title();
            $permalink = get_permalink();
            $output .= ‘<li><a href=»‘ . $permalink . ‘» title=»‘ . esc_attr( $post_title ) . ‘»>’ .
        }
        $output .= ‘</ul>’;
    } else {
        // If there are no posts, we should return something, too!
        $output .= ‘<p>Sorry, this category has just one post and you just read it!</p>’;
    }
    // Let’s close the <div> and return the $output:
    $output .= ‘</div>’;
    return $output;
}
?>

Выполнено! Вы можете включить эту функцию в свой файл functions.php (или сохранить его как отдельный плагин) и <?php echo wptuts_more_from_cat( 'More From This Category:' ); ?> его (как <?php echo wptuts_more_from_cat( 'More From This Category:' ); ?> ) В любом месте внутри вашего сингла. php файл


Да, контент может быть «королем», но одинокий король — слабый король, и люди могут не уважать этого «короля».

Как вы думаете, есть еще элементы страницы, которые могут помочь «королю»? Оставьте свои комментарии ниже — вам всегда важно поделиться с нами своими мыслями!