如何仅在精选图像标题存在时才显示它

时间:2013-08-28 作者:Paul Coppock

我在函数中使用这个函数。php用于显示所需图像的图像标题:

function the_post_thumbnail_caption() {
global $post;

$thumbnail_id    = get_post_thumbnail_id($post->ID);
$thumbnail_image = get_posts(array(\'p\' => $thumbnail_id, \'post_type\' => \'attachment\'));

if ($thumbnail_image && isset($thumbnail_image[0])) {
echo \'<div class="front-caption">\'.$thumbnail_image[0]->post_excerpt.\'</div>\';
}
} 
并在模板文件中使用此选项显示标题:

<?php 
if (the_post_thumbnail_caption()) { 
 the_post_thumbnail_caption(); 
}
?>
在函数文件中,标题显示在div class=“front caption”中,我正在使用边框设置样式。如果标题不存在,则仍显示带边框的空div。

如果没有标题,我不想显示带边框的div。我只想它不显示任何内容。

如何正确地编写代码使其工作?提前谢谢。

3 个回复
最合适的回答,由SO网友:Dejo Dekic 整理而成

我“有点晚了”,但这个解决方案对我很有效。仅当标题不为空时,才会显示div。

<?php
$get_description = get_post(get_post_thumbnail_id())->post_excerpt;
the_post_thumbnail();
  if(!empty($get_description)){//If description is not empty show the div
  echo \'<div class="featured_caption">\' . $get_description . \'</div>\';
  }
?>

SO网友:Mere Development

请注意,从WordPress 4.6开始,该功能已添加到core(/wp-includes/post-thumbnail-template.php).

使用之前发布在此处的代码将导致错误:

致命错误:无法重新声明\\u post\\u thumbnail\\u caption()

为了避免这种情况,请将函数命名为其他名称,或者如果在主题中迎合早期版本的WordPress,请添加如下检查:

if ( ! function_exists( \'the_post_thumbnail_caption\' ) ) {
 function the_post_thumbnail_caption() {
  global $post;

  $thumbnail_id    = get_post_thumbnail_id($post->ID);
  $thumbnail_image = get_posts(array(\'p\' => $thumbnail_id, \'post_type\' => \'attachment\'));

   if ($thumbnail_image && isset($thumbnail_image[0])) {
    return \'<div class="front-caption">\'.$thumbnail_image[0]->post_excerpt.\'</div>\';
   } else {
     return;
   }
 }
}

SO网友:JMau

您可以尝试以下操作:

function the_post_thumbnail_caption() {
 global $post;

 $thumbnail_id    = get_post_thumbnail_id($post->ID);
 $thumbnail_image = get_posts(array(\'p\' => $thumbnail_id, \'post_type\' => \'attachment\'));

  if ($thumbnail_image && isset($thumbnail_image[0])) {
   return \'<div class="front-caption">\'.$thumbnail_image[0]->post_excerpt.\'</div>\';
  } else {
    return;
  }
} 
然后:

echo the_post_thumbnail_caption(); 

结束

相关推荐