カテゴリページの上部にスティッキーな投稿を表示できるようにしたいです。カテゴリページにarchive.phpを使用しています。
下のコードを使用して、自分のカテゴリアーカイブページの一番上にスティッキ投稿を表示し、続いてそのカテゴリ内の残りの投稿を表示します。
カテゴリー内に表示するスティッキーな投稿がなくなり、投稿リストが複製されるまで、これはうまく機能します。
<?php
// get the current category
$category = get_the_category();
// get the sticky post in the category, order by title - ascending
query_posts(array( 'post__in' => get_option('sticky_posts'), 'orderby' => 'title', 'post_date' => 'DESC' , 'cat' => ''.$category[0]->cat_ID.'' ));
?>
<?php if (have_posts()) : ?>
<?php
if ($cat)
{echo "<h2>Articles in " . get_the_category_by_ID($cat) . "</h2>";}
?>
<ul id="archive-list">
<?php while (have_posts()) : the_post(); ?>
<li class="sticky"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <span>Updated on <?php the_modified_date(); ?> at <?php the_modified_time() ?></span></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php
// get the sticky post in the category, order by title - ascending
query_posts(array( 'post__not_in' => get_option('sticky_posts'), 'orderby' => 'title', 'post_date' => 'DESC' , 'cat' => ''.$category[0]->cat_ID.'' ) );
?>
<?php if (have_posts()) : ?>
<ul id="archive-list">
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <span>Updated on <?php the_modified_date(); ?> at <?php the_modified_time() ?></span></li>
<?php endwhile; ?>
</ul>
<?php if(function_exists('wp_page_numbers')) { wp_page_numbers(); } ?>
<?php else : ?>
<h1 class="center">Sorry, no articles have been published in the <?php if ($cat) {echo "" . get_the_category_by_ID($cat) . "";} ?> category.</h1>
<?php include (TEMPLATEPATH . '/searchform.php'); ?>
<?php endif; ?>
任意の助けは大歓迎です!ありがとう。
次のように、最初のループをラップする条件付きステートメントを使用してみます。
if( get_option('sticky_posts') ) : //only do the next part if sticky posts
最初のループのendif;
の後に対応するendif;
を追加します。
wp_reset_query()
の後にquery_posts()
を使用してください。これに たくさんの投稿があります 。 ;)