我在函数中使用这个函数。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。我只想它不显示任何内容。
如何正确地编写代码使其工作?提前谢谢。
最合适的回答,由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;
}
}
}