Как настроить панель «Избранные материалы» в WordPress

Возможно, в вашем блоге есть истории, которые вы бы хотели как-то выделить для своих читателей. В таком случае вам стоит обратить внимание на функцию «Избранные статьи» (Featured Posts).

При использовании WordPress, сделать это можно разными способами, одним из которых является использование плагина Jetpack:

Возможности плагина Jetpack аналогичны возможностям, предоставляемым онлайн-сервисом WordPress.com.

К моменту написания этой статьи, он включает в себя 30 функций, поддерживаемых WordPress.com: Stats, Photon, Infinite Scroll, и как раз то, на чем мы сосредоточимся далее – «Избранные статьи» (Featured Content).

Начнем!

Добавление поддержки функции в тему

Примечание: В версии Jetpack 2.7, функцию «Избранные материалы» можно найти в меню «Внешний вид > Настроить» (Apperance > Customize).

Первым делом, вам нужно добавить функцию add_theme_support в файл functions.php вашей темы:

add_theme_support( 'featured-content', array(  
    'featured_content_filter' => 'mytheme_get_featured_content',  
));

После этого на странице «Настройки > Чтение» появится новая форма «Избранные статьи» (Settings > Reading):

Добавление поддержки функции в тему

В данной форме введите тег для избранного содержимого, задайте число постов, которые вы хотите показать и снимите галочку в чекбоксе, чтобы избежать попадания этого тега в общее облако тегов вашего блога.

Затем, просто присвойте нужным записям данный тег.

Вывод содержимого

Теперь мы добавим несколько строк кода, чтобы отобразить избранное содержимое в нашей теме. Для целей статьи я использую стандартную тему TwentyTwelve.

Обычно, избранные материалы отображаются на главной странице блога. Если ваша тема построена по канонам стандартной архитектуры тем WordPress, то главная страница формируется в одном из следующих файлов: index.php, home.php или front-page.php.

Откройте файл functions.php и добавьте туда следующую функцию, которая считывает все избранные статьи и помещает их в массив:

function twentytwelve_get_featured_content() {  
    apply_filters( 'twentytwelve_featured_content', array() );  
}

Далее, можно расширить этот код:

function twentytwelve_get_featured_content( $num = 1 ) {  
    global $featured;  
    $featured = apply_filters( 'twentytwelve_featured_content', array() );  
  
    if ( is_array( $featured ) || $num >= count( $featured ) )  
        return true;  
  
    return false;  
}

Условный оператор, приведенный выше, отобразит избранные материалы, если имеется хотя бы один из таковых.

В дополнение, мы можем установить размер для картинок предварительного просмотра (thumbnails) избранных материалов. В нашем примере, я задал размер 250 на 160 пикселей.

Можете добавить следующий далее код где-нибудь выше функции add_theme_support( 'post-thumbnail' ):

add_theme_support( 'post-thumbnails' );  
add_image_size( 'twentytwelve-featured-thumb', 250, 160, true );

Далее, создадим новый шаблон под названием featured.php и добавим в него код, приведенный ниже, чтобы органично вписать блок с избранными статьями в HTML-структуру:

<div class="featured-post clearfix">  
    <figure class="post-thumbnail">  
        <?php if ( has_post_thumbnail() ) { the_post_thumbnail('twentytwelve-featured-thumb'); } ?>  
    </figure>  
    <div class="post-entry">  
        <h3 class="post-title"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>  
        <?php the_excerpt(); ?>  
    </div>  
</div>

А в файле index.php мы вызовем этот шаблон, используя функцию get_template_part() и расположив её в цикле следующим образом:

<?php if ( twentytwelve_get_featured_content(1) ) : ?>  
    <div id="featured">  
        <h2><?php _e( 'Featured Content', 'twentytwelve' ); ?></h2>  
        <?php foreach ( $featured as $post ) : setup_postdata( $post ); ?>  
            <?php get_template_part( 'featured', get_post_format() ); ?>  
        <?php endforeach; ?>  
    </div>  
<?php endif; ?>

Теперь, с технической стороны все готово и, после добавления нескольких CSS-классов, у нас будет небольшая и аккуратная панель, отображающая избранные материалы блога.

Вывод содержимого

Заключение

Надеюсь, эта статья оказалась полезной для вас!

РедакцияПеревод статьи «How To Display "Featured Content" In WordPress»