我正在使用儿童主题。
这里是父功能
function aaron_customize_css() {
echo '<style type="text/css">';
if ( is_admin_bar_showing() ) {
?>
.main-navigation{top:32px;}
@media screen and ( max-width: 782px ) {
.main-navigation{top:46px;}
}
@media screen and ( max-width: 600px ) {
.main-navigation{top:0px;}
}
<?php
}
echo '.site-title{color:#' . get_header_textcolor() . ';} ';
$header_image = get_header_image();
if ( ! empty( $header_image ) ) {
?>
.site-header {
background: <?php esc_attr_e( get_theme_mod('aaron_header_bgcolor', '#fafafa') ) ?> url(<?php header_image(); ?>) <?php esc_attr_e( get_theme_mod('aaron_header_bgrepeat', 'no-repeat') ); ?> <?php esc_attr_e( get_theme_mod('aaron_header_bgpos', 'center top') ); ?>;
background-size: <?php esc_attr_e( get_theme_mod('aaron_header_bgsize', 'cover') ); ?>;
}
<?php
/* No image has been chosen, check for background color: */
}else{
if( get_theme_mod('aaron_header_bgcolor') ){
echo '.site-header { background:' . esc_attr( get_theme_mod('aaron_header_bgcolor', '#fafafa') ) . ';}';
echo '#action:hover, #action:focus{text-shadow:none;}';
}
}
//Call to Action text color
if( get_theme_mod( 'aaron_action_color' ) <> ' ') {
echo '#action, #action a{ color:' . esc_attr( get_theme_mod('aaron_action_color', '#000000') ) . ';}';
}
echo '</style>' . "\n";
}
add_action( 'wp_head', 'aaron_customize_css');
这里是已编辑的子功能。
function aaron_customize_css_child() {
echo "<!-- test i am in child theme --> ";
echo '<style type="text/css">';
if ( is_admin_bar_showing() ) {
?>
.main-navigation{top:32px;}
@media screen and ( max-width: 782px ) {
.main-navigation{top:46px;}
}
@media screen and ( max-width: 600px ) {
.main-navigation{top:0px;}
}
<?php
}
echo '.site-title{color:#' . get_header_textcolor() . ';} ';
$header_image = get_header_image();
if (! empty( $header_image)) {
?>
.site-header {
background: url(<?php header_image(); ?>) no-repeat center center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
<?php
/* No image has been chosen, check for background color: */
}else{
if( get_theme_mod('aaron_header_bgcolor') ){
echo '.site-header { background:' . esc_attr( get_theme_mod('aaron_header_bgcolor', '#fafafa') ) . ';}';
echo '#action:hover, #action:focus{text-shadow:none;}';
}
}
echo '</style>' . "\n";
}
add_action( 'wp_head', 'aaron_customize_css_child');
我试图覆盖function.php中的父函数。我按照http://code.tutsplus.com/articles/how-to-modify-the-parent-theme-behavior-within-the-child-theme--wp-31006的说明进行操作。但它不起作用。我甚至在stackoverflow上查了几个问题,但它没有找到我想要的东西。我确实检查了http://codex.wordpress.org/Child_Themes,它说我可以通过声明
替换子functions.php中的父函数if(!function_exists( 'aaron_customize_css')) {
function aaron_customize_css() {}
}
我甚至尝试了很多其他方法,但我无法让它发挥作用。帮助
答案 0 :(得分:2)
你可以&#34;删除&#34;父主题函数remove_action()
。此函数删除已附加到指定操作挂钩的函数,通常用于替换替换函数:
remove_action('wp_head', 'aaron_customize_css');
然后添加自己的功能代替它:
add_action('wp_head', 'aaron_customize_css_child');
所以,总的来说,你的孩子主题中会有以下内容:
function aaron_customize_css_child() {
remove_action('wp_head', 'aaron_customize_css');
// function contents
}
add_action('wp_head', 'aaron_customize_css_child', 100);