我有一些像这样的代码。
$counter = 1;
$content = "";
foreach($images as $image) {
$content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
$counter++;
}
echo apply_filters('images_filter', $content);
上述代码使用WordPress过滤器隐藏整个内容。但我想只隐藏最后50%的图像。
假设我有15张图片。
$hide = floor( $counter / 2 ); //value will be 7
所以我想只隐藏8到15的图像。
我试过这样的事。但它不起作用。
if ($counter >= $hide) {
echo apply_filters('images_filter', $content);
}
有人能告诉我正确的语法吗?
答案 0 :(得分:1)
我不知道图像过滤器,但这应该有效:
$show = ceil( count($images) / 2 );
$counter = 1;
$content = "";
foreach($images as $image){
if($counter<=$show){
$content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
}else{
break;
}
++$counter;
}
echo apply_filters('images_filter',$content);
答案 1 :(得分:0)
尝试这样的事情:
$counter = 1;
$content = "";
$hide = floor( $counter / 2 ); //value will be 7
foreach($images as $image){
if ($counter >= $hide) $content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
else echo "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
$counter++;
}
echo apply_filters('images_filter',$content);
回显普通的HTML,将过滤器应用到其余部分吗?
答案 2 :(得分:0)
你需要打破foreach循环。
foreach($images as $image){
if ($counter <= $hide){
$content .= "<li><img src='".$image['images_image'][1]['thumb']."'></li>";
$counter++;
}
else {
break;
}
}
答案 3 :(得分:0)
我认为这可行:
foreach($images as $image) if($counter++ <= $hide) {
// do your stuff
}
虽然使用break更好;正如Simon R所说。