web-dev-qa-db-ja.com

最新のサムネイルと説明付きで1つのカテゴリからの投稿を表示する

1つのカテゴリからの投稿をサムネイルと最新の投稿の説明とともに表示するためのWordPress用のウィジェットはありますか? WIDGET LIKE:WWW.GOAL.comのトップニュースセクション。

enter image description here

1
david

私はデフォルトでこれをするウィジェットやプラグインを知りません。あなたのテーマの中でこれを作成するためには、各カテゴリーを通過し、そしてカウンターでそれぞれからの最新の投稿を問い合わせる複数の問い合わせループを書く必要があるでしょう。

簡単な例です。

$cats = get_categories();

foreach ( $cats as $cat ) {  //Loop through all the categories
    $count = 0;
    $args = array(
           'cat' => $cat->term_id,  //uses the current category in the loop
           'posts_per_page' => 4,
           'no_found_rows' => true,  //Performance optimizes the query
           'update_meta_cache' => false,  //We don't need post_meta
           );

    echo '<div class="aside-'. $cat->slug .'">'. $cat->name .'</div>';

    $cat_q = new WP_Query( $args );
    while( $cat_q->have_posts() ) : $cat_q->the_post();
    $count++

    if( $count == 1 ) { ?>  //Sets the output for the top post
        <div id="post-<?php the_ID(); ?>" <?php post_class('feature'); ?>>
            <fig><?php the_post_thumbnail(); ?></fig>
            <h3 class="post-title feature><a href="<?php the_permalink(); ?>><?php the_title(); ?></a></h3>
            <p><?php the_excerpt(); ?></p>
        </div>
        <div class="right-side">
        <ul class="post-list">
<?php } else { ?>
        <li><a href="<?php the_permalink(); ?><?php the_title(); ?></a></li>
<?php }
     endwhile; ?>
         </ul>
         </div><!-- /end .right-side -->
         </div><!-- /end .aside-<?php echo $cat->slug; ?> -->

<?php } //Ends our category foreach loop
1
Chris_O

これはうまくいくでしょう、

<?php $postCount = 0; ?>
    <h1 class="section_title">Category-1</h1>
    <?php query_posts('cat=1&showposts=4'); ?>
    <?php while (have_posts()) : the_post(); ?>
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    <?php if($postCount == 0) { the_excerpt(); }?> 
    <?php $postCount++; ?>
<?php endwhile; ?>

<?php $postCount = 0; ?>
    <h1 class="section_title">Category-2</h1>
    <?php query_posts('cat=2&showposts=4'); ?>
    <?php while (have_posts()) : the_post(); ?>
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    <?php if($postCount == 0) { the_excerpt(); }?> 
    <?php $postCount++; ?>
<?php endwhile; ?>

<?php $postCount = 0; ?>
    <h1 class="section_title">Category-3</h1>
    <?php query_posts('cat=3&showposts=4'); ?>
    <?php while (have_posts()) : the_post(); ?>
    <a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
    <?php if($postCount == 0) { the_excerpt(); }?> 
    <?php $postCount++; ?>
<?php endwhile; ?>

注意 -

  • ここでは、カテゴリ別に3つのグループに投稿を表示するために3つのクエリを作成しています
  • Cat = 1を表示したいカテゴリIDに置き換えます
  • Showposts = 4は最初の1件を含む最新の4件の投稿を表示します(フル投稿)
  • if($postCount == 0)は、ループの最初の投稿を決定し、抜粋を表示するために使用されました
0
amit