質問: カスタム背景cssの編集 私は私のfunctions.phpにadd_theme_support( 'custom-background');関数を追加しましたが、wp_headに追加されたcssは私が望むような方法ではありません。<style type="text/css" id="custom-background-css"> body.custom-background { background-image: url('http://localhost/wordpress/wp-content/uploads/2016/05/bg_green_dark.jpg'); background-repeat: no-repeat; background-position: top center; background-attachment: fixed; } </style> 私は背景としてdivを持っています。<div id="bg"></div> そして私はcustom-backgroundを本体の代わりにdivに追加したいです。それをする方法はありますか?
回答: はい、それは可能です。 コーデックスを見てください あなたはあなたがadd_theme_support( 'custom-background')で引数を渡すことができるのを見るでしょう。その1つが、<style>タグを生成するコールバック関数です_custom_background_cb。あなた自身の関数をadd_theme_supportへの引数として渡すことができます。これが元の関数の コードです (wp 4.5から取得、後でこれを読んでいるかどうか確認してください):function _custom_background_cb() { // $background is the saved custom image, or the default image. $background = set_url_scheme( get_background_image() ); // $color is the saved custom color. // a default has to be specified in style.css. it will not be printed here. $color = get_background_color(); if ( $color === get_theme_support( 'custom-background', 'default-color' ) ) { $color = false; } if ( ! $background && ! $color ) return; $style = $color ? "background-color: #$color;" : ''; if ( $background ) { $image = " background-image: url('$background');"; $repeat = get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ); if ( ! in_array( $repeat, array( 'no-repeat', 'repeat-x', 'repeat-y', 'repeat' ) ) ) $repeat = 'repeat'; $repeat = " background-repeat: $repeat;"; $position = get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ); if ( ! in_array( $position, array( 'center', 'right', 'left' ) ) ) $position = 'left'; $position = " background-position: top $position;"; $attachment = get_theme_mod( 'background_attachment', get_theme_support( 'custom-background', 'default-attachment' ) ); if ( ! in_array( $attachment, array( 'fixed', 'scroll' ) ) ) $attachment = 'scroll'; $attachment = " background-attachment: $attachment;"; $style .= $image . $repeat . $position . $attachment; } ?> <style type="text/css" id="custom-background-css"> body.custom-background { <?php echo trim( $style ); ?> } </style> <?php } これをコピーしてmy_callback_functionという名前に変更し、cssが表示される最後の行を変更して、これをコールバックとして渡します。$defaults = array( 'default-color' => '', 'default-image' => '', 'default-repeat' => '', 'default-position-x' => '', 'default-attachment' => '', 'wp-head-callback' => 'my_callback_function', 'admin-head-callback' => '', 'admin-preview-callback' => '' ); add_theme_support( 'custom-background', $defaults );