我最初使用的是一个字段,下面的代码工作得很好。现在我需要将其更改为几个类似字段的循环。
首先:我在页面上创建了几个自定义字段(slide1、slide2、slide3),这些字段包含图像位置的URL。接下来,我创建了一些文本字段(slide1\\u text、slide2\\u text等)。
代码方面,我在模板中提取字段,如下所示:
<?php
// check for slide
$slide = get_post_meta($post->ID, \'slide1\', $single = true);
// check for slide text
$thumb_text = get_post_meta($post->ID, \'slide1_label\', $single = true);
// if there\'s a slide
if($slide !== \'\') { ?>
<section class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<img src="<?php echo $slide; ?>" class="slider-images" />
</div>
<div class="carousel-caption">
<h2><?php if($slide_text !== \'\') { echo $slide_text; } else { echo the_title(); } ?></h2>
</div>
</div>
</section>
<?php } // end if statement
?>
基本上,它会检查是否有一个名为slide1的字段,如果有,它会打印它。我对添加循环知之甚少,这里的最终目标是返回为引导旋转木马格式化的字段。(我知道有一些插件,但我已经尝试了一些,它们并不是我想要的。)
如何更改此代码以包含循环,以便它检查并查看是否有标题为slide*的字段,如果有,则循环并获取所有字段?
此外,如果有一种方法可以确保第一张幻灯片有一个“active”类,那就太好了,如下面的代码所示<div class="item active">
所有其他字段将仅为class=item。
最合适的回答,由SO网友:Aric Watson 整理而成
尝试此操作可循环浏览多达4张幻灯片-检查每张幻灯片是否有效:
<?php
$max_slides = 4; // this should be the maximum number of slides there can be
for ($i=1; $i<=$max_slides; $i++) {
// check for slide
$key = \'slide\' . $i;
$slide = get_post_meta($post->ID, $key, $single = true);
// check for slide text
$thumb_text = get_post_meta($post->ID, $key . \'_label\', $single = true);
// if there\'s a slide
if($slide !== \'\') { ?>
<section class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="item active">
<img src="<?php echo $slide; ?>" class="slider-images" />
</div>
<div class="carousel-caption">
<h2><?php if($slide_text !== \'\') { echo $slide_text; } else { echo the_title(); } ?></h2>
</div>
</div>
</section>
<?php } // end if statement
}
?>
你可以改变
$max_slides
经历4次以上