如何在WordPress中处理背景大小的封面图像?

时间:2017-04-16 作者:David A. French

wordpress的新设计师。我想把一个帖子的特色图片,并使其成为一个英雄形象的帖子单页。

我通常的做法是创建一个div,将width设置为100%,height设置为我想要的任何vh,然后将background设置为CSS中的图像url,background size设置为cover。

所以我在Wordpress中是这样做的:

<section class="hero" style="background: url(\'<?php echo $hero_image[\'url\'];?> \');" xmlns="http://www.w3.org/1999/html">
但这有点不可靠,因为使用内联样式设置背景会将所有CSS覆盖回默认元素。关于如何做得更好,有什么想法吗?最好没有任何插件,因为我正在努力学习如何尽可能多地使用代码。虽然我已经安装了高级自定义字段和自定义Post类型UI,而且我正在广泛使用它们。

3 个回复
最合适的回答,由SO网友:David A. French 整理而成

因此,杰克的答案是有效的,而且是正确的,但我也为我已经拥有的东西找到了一个更优雅的解决方案。我制作了内联样式的背景图像,而不是背景:

<section class="hero" style="background-image: url(\'<?php echo $hero_image[\'url\'];?> \');" xmlns="http://www.w3.org/1999/html">

SO网友:jay_R_champ

您是否也尝试过将背景尺寸“cover”内联添加,如下图所示

 <section class="hero" style="background: url(\'<?php echo $hero_image[\'url\'];?> \') cover;" xmlns="http://www.w3.org/1999/html">

SO网友:Johansson

您可以挂接到主题的标题并添加您的样式。将这段代码添加到主题的functions.php 文件:

<?php 
add_action(\'wp_head\',\'my_hero_image\');
function my_hero_image() {
    if( is_single() ) { ?>
        section.hero {
            background-image: <?php the_post_thumbnail_url(\'full\'); ?>;
            background-size: cover;
        } <?php 
    }
}
?>
这将在单个帖子的主题标题中添加以下样式:

<style>
    section.hero {
        background-image: YOUR IMAGE URL;
        background-size: cover
    }
</style>
这样就行了。

相关推荐

在带有PHP的子主题中包含style.css

在里面https://codex.wordpress.org/Child_Themes 这是包含样式的最佳实践。css在子主题中,必须将下面的代码放入函数中。php的子主题,但将“父样式”替换为可以在函数中找到的父主题的参数。父主题的php。我在我的主题文件中找不到它,那里也没有多少代码。使用@import包含父主题样式表的方法不适用于我,放入文件的css不会在任何浏览器的站点上显示自己。function my_theme_enqueue_styles() { $parent_s