指定对帖子的特定图像编号执行的操作

时间:2011-08-06 作者:JonnyPlow

我想为我的帖子的图像指定-如果是数字x,则输出这个,否则如果是数字y,则输出这个,等等。我正在尝试对该帖子的第1、4、9个图像进行特定处理。下面的代码是我用来简单输出我的所有图片的代码。有什么想法吗?

<?php $images = get_post_meta($post->ID, \'rw_postpage_images\');  ?>
<?php foreach ($images as $att) {
$src = wp_get_attachment_image_src($att, \'full\');
$src = $src[0]; 
$image_path =  thumbGen($src,80,80,"crop=1&halign=center&valign=center&return=1");
?>
<div class="post_item">
<div class="small">
<img src="<?php echo $image_path; ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="80"  height="80"/>
</div>
</div>
<?php } ?>

2 个回复
最合适的回答,由SO网友:Milo 整理而成

在foreach外部设置一个计数器变量,在每次迭代中检查其值并输出相应的标记,然后在下一次迭代结束时递增。

<?php
$images = get_post_meta($post->ID, \'rw_postpage_images\');
// set a counter
$image_counter = 1;
foreach ($images as $att) :
    $src = wp_get_attachment_image_src($att, \'full\');
    $src = $src[0]; 
    $image_path =  thumbGen($src,80,80,"crop=1&halign=center&valign=center&return=1");
    // check the counter
    if( $imagecounter == 1 ) :
        // output markup for first image
    elseif( $imagecounter == 4 ):
        // output markup for fourth image
    elseif( $imagecounter == 9 ):
        // output markup for ninth image
    else :
        // markup for all the others
    ?>
        <div class="post_item">
            <div class="small">
                <img src="<?php echo $image_path; ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="80"  height="80"/>
            </div>
        </div>
    <?php
    endif;
    // increment the counter
    $imagecounter++;
endforeach;
?>
我把注释放在了标记可以缩短时间的地方。只需将您想要输出的任何标记放在与上一个类似的特定位置else:

SO网友:Chris Carson
foreach ($images as $n=>$att){
    //some code
    if (in_array($n, array(0,3,8)){
         //do this
    } else {
         //do something entirely different
    }
}
结束

相关推荐

Resizing all images

我刚刚更改了博客的主题,由于页面宽度很小,它打破了布局。我之前的大多数图片(附在帖子中)的宽度都在600px左右,现在我需要按450px的比例调整它们的大小。如何一次性调整它们的大小?有这个插件吗?P、 美国:编写CSS规则是一个很好的选择,我已经做到了。但我认为调整图像大小也会减少每个页面的下载开销!