去除foreach循环中的损坏图像


Get rid of broken image in foreach loop?

缩略图'smallthumb'是用get_post_metaforeach循环数组来检索的。

是否只有在有缩略图的情况下才能显示图像?此时,如果没有'smallthumb'图像的值,则IE和FF显示损坏的图像。

<?php
  if(count($ids)){
    echo '<div id=read-more-widget>
    <div class="read-more-header">Read more</div>
    <ul class="read-more-links">';
  foreach($ids as $id){
    echo '<li><a href="'.get_permalink( $id ).'">'.get_the_title( $id ).'</a>
    <a href="'.get_permalink( $id ).'">
    <img class="small-thumb" src="'.get_post_meta( $id, 'smallthumb', true ).'">
    </a><p class="read-more-entry">'.get_post_meta( $id, 'entry', true ).'</p></li>';
    }
  echo "</ul></div>";
 }
?> 

我不确定您的代码是如何工作的,但将img标记一起删除是一个可行的解决方案吗?例如

<?php
  if(count($ids)){
    echo '<div id=read-more-widget>
    <div class="read-more-header">Read more</div>
    <ul class="read-more-links">';
  foreach($ids as $id){
    echo '<li><a href="'.get_permalink( $id ).'">'.get_the_title( $id ).'</a>
    <a href="'.get_permalink( $id ).'">
    <?php if ($smallthumb = get_post_meta( $id, 'smallthumb', true)) { ?>
      <img class="small-thumb" src="'.$smallthumb.'">
    <?php } ?>
    </a><p class="read-more-entry">'.get_post_meta( $id, 'entry', true ).'</p></li>';
    }
  echo "</ul></div>";
 }
?>

确切的解决方案需要根据get_post_meta( $id, 'smallthumb', true)可能返回的内容稍微更新。