0

query_post最近の投稿のリストを表示するために使用しています。そして、最初の投稿に特別なスタイルと html マークアップを付けたいと思います。

これは私の現在のコードです:

 $cat_args=array(
              'orderby' => 'name',
              'order' => 'ASC'
               );
            $categories=get_categories($cat_args);
              foreach($categories as $category) {
                $args=array(
                  'showposts' => -1,
                  'category__in' => array($category->term_id),
                  'caller_get_posts'=>1
                );
                $posts=query_posts($args);
                  if ($posts) {
                    echo '<h3><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . '>' . $category->name.'</a> </h3> ';                   

                    while ( have_posts() ) : the_post(); 
                        if( $wp_query->current_post == 0 ) :?>
                            <?php if ( has_post_thumbnail()) : ?>
                                <a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail('post-thumb'); ?></a>
                            <?php endif; ?>
                            <h5><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h5>
                        <?php else : ?>
                            <?php if ( has_post_thumbnail()) : ?>
                                <a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail('post-thumb'); ?></a>
                            <?php endif; ?>
                            <h5><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h5> 
                        <?php endif;

                    endwhile;
                  } // if ($posts
                } // foreach($categories 
4

2 に答える 2

2

スニペットをifステートメントにラップし、ループのthe_post前に関数を呼び出すだけです。while関数を呼び出すことによりthe_post、キューから最初のレコードをフェッチします。次のようになります。

if ( have_posts() ) :
    the_post();

    if ( has_post_thumbnail()) : 
        ?><a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" >
            <?php the_post_thumbnail('post-thumb'); ?>
        </a><?php 
    endif; 
    ?><h5>
        <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
        </a>
    </h5><?php


    while ( have_posts() ) : 
        the_post(); 
        if ( has_post_thumbnail()) : ?>
            <a href="<?php the_permalink(); ?>" class="thumb" title="<?php the_title_attribute(); ?>" ><?php the_post_thumbnail('post-thumb'); ?></a>
        <?php endif; ?>
        <h5><a href="<?php the_permalink(); ?>"> <?php the_title(); ?></a></h5> 
    endwhile;
endif;
于 2013-01-27T11:58:57.257 に答える
0

何にスタイルを適用するか [投稿全体、タイトルなど] に応じて、最初の投稿を特定し、その投稿に必要なクラスまたは HTML を条件付きで出力します。「ループ」は、while と endwhile の間のコードの一部です。したがって、ループの直前に、次のように入力します。

$is_first_post = TRUE;

次に、while ループ内で、スタイルを追加しようとしているものの前に、次のように入力します。

if ($is_first_post == TRUE){
    echo (" .... THIS WOULD BE ADDED TO THE FIRST POST ONLY ....");
    $is_first_post = FALSE; //this flags the next post as not being first 
}
于 2014-11-16T10:36:07.140 に答える