使用特色img作为div背景

时间:2018-01-09 作者:user3547342

我有一个全宽/高的标题div,我想在其中使用特色图像,但如果博客中没有设置特色图像,我很难让div加载默认图像。

我想我可以这样做,但它似乎仍然使用第一个图像加载到div中(而不是默认的img im设置)

<?php
    global $post;
    $src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array( 5600, 1000 ), false, \'\' );
?>

    <style type="text/css">
        .parallax {
            background-image: url(<?php echo $src[0]; ?>);
        }
    </style>

<?php else if( ! has_post_thumbnail() ) : ?>

    <style type="text/css">
        .parallax {
            background-image: url("/wp-content/themes/propertunity/assets/images/backgrounds/highway.jpg") !important;
        }
    </style>

<?php else : ?>

<?php endif; ?>
我做错了什么?

1 个回复
SO网友:David Sword

尝试以下操作:

<?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

结束

相关推荐

Get images by category

我目前获取滑块图像的方法是使用以下工作正常的代码:$args = array( \'post_type\' => \'attachment\', \'sort_order\' => \'ASC\', \'sort_column\' => \'menu_order\', ); $attachments = get_posts($args); if ($attachments) { $