web-dev-qa-db-ja.com

Wp_head()の外側にcustom_backgroundを表示します。

私のテーマは非常に小さい1ページのテーマで、実際にはすべてのスクリプトを必要としません。そのため、wp_head()wp_footer()を削除するオプションをいくつか作成しました。

ただし、私のサイトではcustom_background()にあるwp_head()機能を使用しているため、wp_head()を無効にすると背景も削除されます。

custom_background()コードをwp_head()の外側に配置する方法はありますか?

3
J. Doe

custom_background()はあなたがあなたのヘッダにwp_head()を持っていないかのようにそれらのCSSを得るためにあなたが述べたように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>
4
Samuel Elh

はい、これは可能です。次のように get_background_image() を使用してカスタム背景画像に直接アクセスできます。

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