在wp_head()外部显示CUSTOM_BACKGROUND

时间:2016-06-02 作者:J. Doe

我的主题是一个非常小的单页主题,它实际上不需要所有的脚本,所以我创建了几个选项来删除wp_head()wp_footer() 因此,用户可以选择是否要启用或禁用这些功能。

然而,我的网站确实使用custom_background() 放置在wp_head() 所以当他们禁用wp_head(), 它们还将删除背景。

有没有办法放置custom_background() 代码超出wp_head()?

2 个回复
最合适的回答,由SO网友:Ismail 整理而成

custom_background() 将CSS放置到wp_head() 正如你提到的那样,让那些CSS看起来好像你没有wp_head() 在标题中,核心文件中的这些调整将有助于:

function wpse_228588_background_image_css() {
    $background_styles = \'\';
    if ( $bgcolor = get_background_color() )
        $background_styles .= \'background-color: #\' . $bgcolor . \';\';

    $background_image_thumb = get_background_image();
    if ( $background_image_thumb ) {
        $background_image_thumb = esc_url( set_url_scheme( get_theme_mod( \'background_image_thumb\', str_replace( \'%\', \'%%\', $background_image_thumb ) ) ) );

        // Background-image URL must be single quote, see below.
        $background_styles .= \' background-image: url(\\\'\' . $background_image_thumb . \'\\\');\'
            . \' background-repeat: \' . get_theme_mod( \'background_repeat\', get_theme_support( \'custom-background\', \'default-repeat\' ) ) . \';\'
            . \' background-position: top \' . get_theme_mod( \'background_position_x\', get_theme_support( \'custom-background\', \'default-position-x\' ) );
    }
    return $background_styles; // CSS
}
用法:

<style type="text/css" media="all">body{<?php echo wpse_228588_background_image_css(); ?>}</style>

SO网友:cjbj

是的,这是可能的。您可以使用直接访问自定义背景图像get_background_image(), 像这样:

echo \'<style>body.custom-background {background-image: url(\' . get_background_image() . \');} </style>\';

相关推荐

About wordpress child themes

我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容