我有以下表达式,以获取帖子缩略图,如果帖子没有缩略图,则应将默认图片设置为<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]; ?>
中,但我不知道如何解决。
答案 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)
查看返回的结果,然后从那里进行编辑。