web-dev-qa-db-ja.com

カテゴリーアーカイブに付箋記事を表示する

カテゴリページの上部にスティッキーな投稿を表示できるようにしたいです。カテゴリページに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; ?>

任意の助けは大歓迎です!ありがとう。

5
D-B

次のように、最初のループをラップする条件付きステートメントを使用してみます。

if( get_option('sticky_posts') ) : //only do the next part if sticky posts

最初のループのendif;の後に対応するendif;を追加します。

3
Michael

wp_reset_query()の後にquery_posts()を使用してください。これに たくさんの投稿があります 。 ;)

2
fuxia