Как настроить панель «Избранные материалы» в 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» был подготовлен дружной командой проекта Сайтостроение от А до Я.