向主页中的部分添加自定义背景

时间:2016-11-06 作者:Héloïse Chauvel

需要明确的是:在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;
}
尽管有这些修改,但当我尝试在管理界面中添加背景图像时,背景应用于正文,而不是我的部分。有人能解释一下原因吗?非常感谢。

1 个回复
最合适的回答,由SO网友:Héloïse Chauvel 整理而成

可以我终于找到了解决办法!(即使我不明白我们为什么要这样做)。

事实上,我们没有修改function.php 但文件customizer.php 使用我上面引用的代码(在问题中)。

现在我真的觉得从那个问题上解脱了,但任何人都可以解释为什么我们要修改那个文件?我想我还没有真正理解不同文件的作用。

inc子目录

inc子目录内容

enter image description here

相关推荐