尝试以下操作:
<?php
global $post;
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), array( 5600,1000 ), false, \'\' );
$default = get_template_directory_uri()."/assets/images/backgrounds/highway.jpg";
$bgimg = (isset($src[1])) ? $src[0] : $default;
?>
<style type="text/css">
.parallax { background-image: url(<?= $bgimg ?>); }
</style>
wp_get_attachment_image_src()
说它回来了
false
如果找不到,但由于某种原因,我在这方面做得不好,所以我只检查是否返回了找到的图像的宽度(
$src[1]
) 相反始终有效。
get_template_directory_uri()
是一种比相对路径更好的方法-你会发现,当这开始显示在主页以外的其他页面上时。根据您的站点,这可能就是您的问题所在。
为了提高效率,这里有一种更好的编写方法,只需一次查询
<?php
global $post;
$img = get_template_directory_uri()."/assets/images/backgrounds/highway.jpg";
$postThumb = get_post_thumbnail_id($post->ID);
if (!empty($postThumb)) {
$src = wp_get_attachment_image_src( $postThumb, array( 5600,1000 ), false, \'\' );
if (isset($src[1]))
$img = $src[0];
}
?>
<style type="text/css">
.parallax { background-image: url(<?= $img; ?>); }
</style>
聚苯乙烯
here\'s how to format code 在此网站上。
更新时间:
$post
如果你在归档文件中,你的主提要中,等等,不会总是你的当前页面,正如你在列出文章时发现的那样,这是你的第一篇文章。因此,您可能需要对当前页面的实际内容设置条件:
<?php
global $post;
$thisPage = false;
if (is_singular())
$thisPage = $post;
elseif (is_home())
$thisPage = get_post(get_option(\'page_for_posts\'));
// other conditionals for other non-singular things here
if ($thisPage) {
$postThumb = get_post_thumbnail_id($thisPage->ID);
// etc