Post Series

Плагин Серии постов для WordPress

Скачать

Плагин Post Series

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

Плагин создает еще одну структурную единицу, серии, для систематизации статей. Теперь к любому посту кроме рубрик и меток можно добавить серию.

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

Screenshot

Продвинутые возможности

Если вы немного разбираетесь в коде, (а именно, сможете добавить несколько строк в файл функций вашей темы), то возможности плагина для существенно расширяются.

Вывод названия серии

На странице серии можно вывести ее заголовок:

<?php 
$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); 
echo $term->name; 
?>

Вывод всех постов, с разделением по сериям

При помощи этого кода можно создать древовидный список всех серий и записей в них. Названия постов будут ссылками.

<?php
// this loop returns all posts separated by series they belong to
$post_type = 'post';
$tax = 'series';
$tax_terms = get_terms($tax);
if ($tax_terms)
{
    foreach($tax_terms as $tax_term)
    {
        $args = array(
            'post_type' => $post_type,
            "$tax" => $tax_term->slug,
            'post_status' => 'publish',
            'posts_per_page' => - 1,
            'caller_get_posts' => 1
        );
        $my_query = null;
        $my_query = new WP_Query($args);
        if ($my_query->have_posts())
        {
            echo '<h3>';
            echo $tax_term->name;
            echo '</h3>';
            while ($my_query->have_posts()):
                $my_query->the_post(); ?>
            <li><a href="<?php
                the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php
                the_title_attribute(); ?>"><?php
                the_title(); ?></a></li>
            <?php
            endwhile;
        }
        wp_reset_query();
    }
}
?>

Вывод списка всех серий

Этот код создает список всех серий, названия серий являются ссылками на страницу с постами серии.

<?php
$taxonomy = 'series';
$orderby = 'name';
$show_count = 0; // 1 for yes, 0 for no
$pad_counts = 0; // 1 for yes, 0 for no
$hierarchical = 1; // 1 for yes, 0 for no
$title = '';
$args = array(
    'taxonomy' => $taxonomy,
    'orderby' => $orderby,
    'show_count' => $show_count,
    'pad_counts' => $pad_counts,
    'hierarchical' => $hierarchical,
    'title_li' => $title
);
?>

<ul>
<?php
wp_list_categories($args); ?>
</ul>

Вывод постов из одной серии

Код создает список всех постов из определенной серии. Чтобы задать серию, нужно указать ее ID в строке, где написано terms.

<?php
$args = array(
    'post_type' => 'post',
    'posts_per_page' => - 1,
    'tax_query' => array(
        array(
            'taxonomy' => 'series',
            'field' => 'id',
            'terms' => '44' // here should be ID of the term
        )
    )
);
$series_term_query = new WP_Query($args);
while ($series_term_query->have_posts()):
    $series_term_query->the_post();
?>
<li><a href="<?php
    the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php
    the_title_attribute(); ?>"><?php
    the_title(); ?></a></li>
<?php
endwhile;
?>