当WordPress中没有帖子缩略图时,将默认图像显示为div背景

时间:2018-07-17 08:57:55

标签: php wordpress

我有以下表达式,以获取帖子缩略图,如果帖子没有缩略图,则应将默认图片设置为<div>背景。

<?php $backgroundImg = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'full');if(empty($backgroundImg)) $backgroundImg = APP_URL . "images/common/no-image.png";?>

<div class="ach_img" style="background: url('<?php echo $backgroundImg[0]; ?>') no-repeat;"></div>

问题在于它正在返回style="background: url('h') no-repeat;。我想问题出在<?php echo $backgroundImg[0]; ?>中,但我不知道如何解决。

4 个答案:

答案 0 :(得分:1)

基于以下官方代码参考信息:

  

返回一个数组(URL,宽度,高度,is_intermediate),如果没有可用的图像,则返回false。
  来源: https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/

您可以尝试以下解决方案:

<?php
$att_image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'full');

if ($att_image === false) {
    $imgPath = APP_URL.'images/common/no-image.png';
} else {
    $imgPath = $att_image[0];
}
?>

<div class="ach_img" style="background: url('<?= $imgPath ?>') no-repeat;"></div>

答案 1 :(得分:1)

如果没有特色图片,

$backgroundImg[0]将仅返回APP_URL的第一个字符。试试这个吧。

<?php
$backgroundImg = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'full'); $bgimg=$backgroundImg[0];
if(empty($backgroundImg)) $bgimg = APP_URL . "images/common/no-image.png";
?>
<div class="ach_img" style="background: url('<?php echo $bgimg; ?>') no-repeat;"></div>

答案 2 :(得分:1)

$post_id = get_the_ID(); // Get current page ID
$feat_image =  wp_get_attachment_image_src( get_post_thumbnail_id($post_id), 'full' ); // To get source path of featured image.
$image_url = $feat_image[0]; // This will return thumbnail image path

现在检查管理员用户是否选择了特色图片。如果为空,则表示未选中。

if(empty($image)){
     $bgimg_path = "Your Image Path";
     echo '<div class="bgimage-section" style="background: url('<?php echo $bgimg_path; ?>') no-repeat;"></div>';
}

希望此代码对您有帮助。

答案 3 :(得分:-1)

您可以使用var_dump($backgroundImg)查看返回的结果,然后从那里进行编辑。