需要明确的是:在Wordpress中,有一个选项可以更改body 背景图片。我想修改此选项以允许更改特定section (命名为#section1)而不是正文的背景图像。
我知道埃米尔·杜波瓦克已经问过这个问题,但我应用了迪德·梅迪奇(TheDeadMedic)给出的建议,结果根本不起作用。。。
Link to the similar question
在文件中functions.php
我做了3个更改:
我对默认代码中与背景图像显示相关的部分进行了注释
function espace_harmonie_body_classes( $classes ) {
// Adds a class of custom-background-image to sites with a custom background image.
/*if ( get_background_image() ) {
$classes[] = \'custom-background-image\';
}*/
...
}
我在
<template_name>_setup()
功能:
// Image in section
$defaults = array(
\'default-color\' => \'ff0000\',
\'default-image\' => \'%1$s/images/image-section.jpg\',
\'default-repeat\' => \'\',
\'default-position-x\' => \'\',
\'default-attachment\' => \'\',
\'wp-head-callback\' => \'wpse_189361_custom_background_cb\',
\'admin-head-callback\' => \'\',
\'admin-preview-callback\' => \'\'
);
add_theme_support( \'custom-background\', $default);
而这一个就在
<template_name>_setup()
功能:
function wpse_189361_custom_background_cb() {
ob_start();
_custom_background_cb(); // Default handler
$style = ob_get_clean();
$style = str_replace( \'body.custom-background\', \'#section1\', $style );
echo $style;
}
尽管有这些修改,但当我尝试在管理界面中添加背景图像时,背景应用于正文,而不是我的部分。有人能解释一下原因吗?非常感谢。