Вы хотите опубликовать некоторое количество постов, каждый из которых является продолжением предыдущего. Например, пошаговое руководство, которое разбито на несколько постов. Вы знаете, что в руководстве будет 10 уроков, и хотите, чтобы эти уроки располагались на вашем сайте на отдельной странице. В этом случае вам поможет плагин Post Series.
Плагин создает еще одну структурную единицу, серии, для систематизации статей. Теперь к любому посту кроме рубрик и меток можно добавить серию.
В действии плагин можно посмотреть на моем блоге, например, при помощи этого плагина создана серия постов по разработке темы для WordPress.
Если вы немного разбираетесь в коде, (а именно, сможете добавить несколько строк в файл функций вашей темы), то возможности плагина для существенно расширяются.
На странице серии можно вывести ее заголовок:
<?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;
?>