我在为我的子主题放置自己的默认自定义标题图像时有问题,但如果不更改父主题(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。
那么,为什么之前的值没有被覆盖呢?它们怎么会被覆盖呢?
最合适的回答,由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);
the
child 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] );
the
functions.php
将首先运行子主题的(首先注册主题支持),然后运行
functions.php
父级的。