子主题不覆盖父主题值(自定义标题)

时间:2017-02-22 作者:Pingviinituutti

我在为我的子主题放置自己的默认自定义标题图像时有问题,但如果不更改父主题(2017年),我就无法这样做。

我可以通过以下方式删除自定义标题:

remove_theme_support(\'custom-header\', 15);
但当我将它们添加回我的子主题时,子主题仍然显示2017个默认自定义标题图像

$custom_header_args = array(
        \'default-image\'      => get_theme_file_uri( \'/assets/images/header.jpg\' ),
        \'width\'              => 2000,
        \'height\'             => 1200,
        \'flex-height\'        => true,
        \'video\'              => true,
    );
    add_theme_support( \'custom-header\', $custom_header_args );
这可以通过对2017/inc/custom标题的细微修改得到最好的证明。php文件。

    add_theme_support( \'custom-header\', apply_filters( \'twentyseventeen_custom_header_args\', array(
        \'default-image\'      => get_parent_theme_file_uri( \'/assets/images/header.jpg\' ),
        \'width\'              => 2000,
        \'height\'             => 1200,
        \'flex-height\'        => true,
        \'video\'              => true,
        \'wp-head-callback\'   => \'twentyseventeen_header_style\',
    ) ) );
    remove_theme_support(\'custom-header\');
    add_theme_support( \'custom-header\', apply_filters( \'twentyseventeen_custom_header_args\', array(
        \'default-image\'      => get_theme_file_uri( \'/assets/images/header.jpg\' ),
        \'width\'              => 2000,
        \'height\'             => 1200,
        \'flex-height\'        => true,
        \'video\'              => true,
        \'wp-head-callback\'   => \'twentyseventeen_header_style\',
    ) ) );
如果我有这样的主题,父主题的标题。jpg显示为自定义标题。但是,如果注释掉第一个默认图像定义,则会看到子主题标题。jpg。

那么,为什么之前的值没有被覆盖呢?它们怎么会被覆盖呢?

1 个回复
最合适的回答,由SO网友:David Lee 整理而成

无需执行remove_theme_support, 把你的放在你的functions.php 文件,确保它是不同的图像(可能听起来很明显,但只是以防万一):

$custom_header_args = array(
    \'default-image\' => get_theme_file_uri( \'/assets/images/header.jpg\' ),
    \'width\' => 2000,
    \'height\' => 1200,
    \'flex-height\' => true,
    \'video\' => true,
);
add_theme_support(\'custom-header\', $custom_header_args);
thechild theme 自定义标题theme_support 值将始终覆盖父级的值,其在core:

// Merge in data from previous add_theme_support() calls.
// The first value registered wins. (A child theme is set up first.)
if ( isset( $_wp_theme_features[\'custom-header\'] ) )
    $args[0] = wp_parse_args( $_wp_theme_features[\'custom-header\'][0], $args[0] );
thefunctions.php 将首先运行子主题的(首先注册主题支持),然后运行functions.php 父级的。

相关推荐

ADD_THEME_SUPPORT(‘CUSTOM-HEADER’)不在仪表板中添加选项菜单

我正在根据工具箱主题从头开始写一个新主题。我的WP安装是开箱即用的。我添加了add\\u theme\\u支持(“custom-header”);我的职能。php文件,但“标题”选项屏幕不会显示在仪表板中。如果我访问该站点,我可以在顶部的工具栏中看到它,但不能在仪表板中看到它。我错过什么了吗?