WordPress:将自定义图片大小回显到图片的背景URL中

时间:2019-04-15 21:40:39

标签: php wordpress

我正在使用PHP echo语句将图像拖到图形元素的背景URL中。这是我目前正在使用的:

echo '<figure class="fixedratio" style="background: url(' . wp_get_attachment_url( get_post_thumbnail_id( )). ');"></figure>';

这行得通,但是无论其大小如何,它都会拉动主图像。

我在functions.php中创建了一个自定义图像尺寸,称为自定义尺寸。我想用那个尺寸。我以为我可以将它添加到get_post_thumbnail_id的括号内,但所做的只是创建错误。

所以这不起作用:

<?php if ( has_post_thumbnail() ) { ?>
    <?php echo '<figure class="fixedratio" style="background: url(' . wp_get_attachment_image_src( get_post_thumbnail_id(), 'custom-size')[0] . ');"></figure>'; ?>
        <?php } else { ?>
    <figure class="fixedratio" style="background: url('<?php bloginfo('template_directory'); ?>/img/photo-na.gif');"></figure>
<?php } ?>

有什么想法可以显示我的自定义尺寸?

1 个答案:

答案 0 :(得分:0)

这里有几个问题:

  1. 如果您查看文档,则会注意到get_post_thumbnail_id()函数仅接受一个参数(至少在撰写本文时):帖子ID。您要传递的缩略图大小不正确。

wp_get_attachment_url()检索给定附件ID的URL。作为上一个功能,该功能也仅接受一个参数(附件ID),因此您不能使用它来获取特定的图像尺寸。

如果要获取特定的图像尺寸,请改用wp_get_attachment_image_src()函数:

$image_data = wp_get_attachment_image_src( get_post_thumbnail_id(), 'custom-size' );
echo '<figure class="fixedratio" style="background: url(' . $image_data[0] . ');"></figure>';
  1. 当您在functions.php文件中添加新图像尺寸时,WordPress不会自动为所有帖子生成这些新图像尺寸,而仅针对此后创建的新帖子。您需要使用Regenerate Thumbnail插件(或类似选项)为您生成它们。如果您不这样做,WordPress将尝试查找帖子大小为“ custom-size”的图像,如果找不到,则WordPress会返回与其找到的尺寸最接近的图像(或原始图像)。 。