1

Wordpress サイト用にこのスライダーをコーディングして、カテゴリ (この例ではスポーツ) の 1 番目、2 番目、3 番目の最新の投稿を各ボックスに表示しようとしています。count 変数を使って何をしても、他の投稿を表示することはできません。最初の投稿だけです。これが私が使用しているループとコードです。ページはsmeharbinger.net/category/sports です

<div class="tabbed">

<!-- tab 1 -->
<div class="t1">
<ul>
    <?php
$count = 1; 
$tabbedSportsQuery = new WP_Query('cat='.get_query_var('cat').'&showposts=1');
while ($tabbedSportsQuery->have_posts()) : $tabbedSportsQuery->the_post(); 
echo '<div class="t'.$count.'">';
echo the_post_thumbnail(array(665,500), array ('class' => 'alignnone'));
$count++; 
endwhile;

?>

</ul>
</div>

<!-- tab 2 -->
<div class="t2">
<ul>
    <?php
  $count = 2; 
$tabbedSportsQuery = new WP_Query('cat='.get_query_var('cat').'&showposts=1');
while ($tabbedSportsQuery->have_posts()) : $tabbedSportsQuery->the_post(); 
echo '<div class="t'.$count.'">';
echo the_post_thumbnail(array(665,500), array ('class' => 'alignnone'));
$count = 2; 
endwhile;

?>

</ul>
</div>

<!-- tab 3 -->
<div class="t3">
<ul>
    <?php
$count = 3; 
$tabbedSportsQuery = new WP_Query('cat='.get_query_var('cat').'&showposts=1');
while ($tabbedSportsQuery->have_posts()) : $tabbedSportsQuery->the_post(); 
echo '<div class="t'.$count.'">';
echo the_post_thumbnail(array(665,500), array ('class' => 'alignnone'));
$count++; 
endwhile;

?>

</ul>
</div>

<!-- The tabs -->
<ul class="tabs">
<li class="t1"><a class="t1 tab" ><h10><?php echo get_the_title($ID); ?></h10></a>        </li>
<li class="t2"><a class="t2 tab" ><h10><?php echo get_the_title($ID); ?></h10></a>  </li>
<li class="t3"><a class="t3 tab" ><h10><?php echo get_the_title($ID); ?></h10></a>  </li>
</ul>

</div><!-- tabbed -->
4

2 に答える 2

0

以下のコードがお役に立てば幸いです。投稿をループしてから、タブのdivを出力してから、残りのタブを変数に入れて、whileループの最後にその変数を出力してください。

<?php
    $count = 1;
    $tabbedSportsQuery = new WP_Query(array(
        'cat' => get_query_var('cat'),
        'posts_per_page' => 3
    ));
    $out = '';
    while ($tabbedSportsQuery->have_posts()) : $tabbedSportsQuery->the_post();
?>
    <div class="t<?php echo $count?>">
        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(665,500), array ('class' => 'alignnone')); ?></a>
    </div>
    <?php 
        if($count == 1) {   
             $out .= '<ul class="tabs"><li class="t'.$count.'">';
            } else {
                $out .= '<li class="t'.$count.'">';
            }   
            $out .= '<a class="t'.$count.' tab"><h10>'.get_the_title($ID).'</h10></a>'; 
            if($count == 3) {   
                $out .= '</li></ul>';
            } else {
                $out .= '</li>';
        } 
    ?>
<?php
    $count++;
    endwhile;
    print $out;
?>
于 2012-10-27T19:21:03.727 に答える
0

これを試して。ノート:

  • クエリを実行する必要があるのは 1 回だけですが、投稿数を 3 に設定whileします。その後、ループがこれらをループします。
  • $count++カウントを 1 から 2 から 3 に増やします。

    <?php
    $count = 1;
    $tabbedSportsQuery = new WP_Query(array(
        'cat' => get_query_var('cat'),
        'posts_per_page' => 3
    ));
    
    while ($tabbedSportsQuery->have_posts()) : $tabbedSportsQuery->the_post();
    ?>
        <div class="t<?php echo $count?>">
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail(array(665,500), array ('class' => 'alignnone')); ?></a>
        </div>
    <?php
    $count++;
    endwhile;
    ?>
    
    <!-- The tabs -->
    <ul class="tabs">
    <li class="t1"><a class="t1 tab" ><h10><?php echo get_the_title($ID); ?></h10></a>        </li>
    <li class="t2"><a class="t2 tab" ><h10><?php echo get_the_title($ID); ?></h10></a>  </li>
    <li class="t3"><a class="t3 tab" ><h10><?php echo get_the_title($ID); ?></h10></a>  </li>
    </ul>
    

于 2012-10-27T16:16:45.393 に答える