私はワードプレスのループ内にスライドショーを設定しようとしています。そのためには、スライドコンテンツの1つのセクションと、ナビゲーションを行う1つのセクションが必要です。ここでphp whileループの中に要素を一度作成する
は私のコードです:
<div id="upcoming_shows">
<?php if ($shows->have_posts()) : ?>
<?php /* Start the Loop */ ?>
<?php while ($shows->have_posts()) : $shows->the_post(); ?>
<?php //get rid of auto drafts and trash posts
$p_status = get_post_status($post);
if ($p_status != 'trash' and $p_status != 'auto-draft') :
?>
<!--I WANT A containing DIV HERE created only once-->
<div id="slides">
<div class="slide" id="slide-<?php echo $post->ID; ?>">
<?php the_post_thumbnail(); ?>
<p class="show_date"><?php echo get_field('show_date'); ?></p>
<h1 class="band_names"><a href="<?php the_permalink(); ?>" alt="link to blog post page"><?php the_title(); ?></a></h1>
</div><!--end Slide-->
<!--AND IT WILL END HERE-->
</div><!-- end SLIDES CONTAINING DIV-->
<!--THEN ANOTHER DIV HERE CONTAINING THE SLIDES_NAV-->
<div id="slides_nav"> <!--CREATE THIS ONLY ONCE as a wrapper-->
<p class="band_names"><a href=#slide-"<?php $post->ID; ?>"><?php the_title(); ?></a></p>
</div><!--end slides nav CONTAINER-->
<?php endif; ?><!--end Auto Draft check-->
<?php endwhile; ?>
<?php endif; ?><!--end if haveposts-->
</div><!--end upcoming_shows-->
私がやりたい何か「スライド」と呼ばれるdivの中に「スライド」のクラスを持つ要素をラップし、その後に包まれた要素の別のセットを作成しています「slides_nav」と呼ばれるdiv。
私が言って道を把握することはできません。
スライド 『要素『すべての周りの』スライド「これは、ループの最初の繰り返しである場合は、と呼ばれるのdivを作成する』
を。 "これがループの最初の反復である場合は、" slide_nav "というdivを作成してスライドのナビゲーション要素を囲みます(これはループ内にも作成されます($ showsのタイトルとページの内部slide_nav hrefに一致するIDを持つスライドにリンクしてください)
私は試しました:
<?php $i=0;
if ($i == 0) {
echo '<div id="slides">';
$i++;
};
divを正しく作成しましたが、スライドごとに作成しました(divを閉じる条件も追加しました)。
私はPHP初心者です。
ループ内で何かを作成するためにいくつかの答えを見て、少し試しましたが、プログラミング知識がないと単純な解決策が見つからないと思います。
ありがとうございました
divが各スライドに対して作成された理由は、まだwhileループ内にあるからです。各スライドごとに再実行されます。 –