在 WordPress 中使用子主题覆盖父主题功能
Overiding parent theme functions with a Child theme in WordPress
我试图用我的子主题 function.php 文件中的函数覆盖父主题 function.php 文件,但我遇到了一些错误。这是我到目前为止所做的..
function remove_et_postinfo_meta_actions() {
remove_action('after_setup_theme','et_postinfo_meta',3);
}
add_action('init', 'remove_et_postinfo_meta_actions');
add_action('after_setup_theme', 'cc_et_postinfo_meta', 3);
if ( ! function_exists( 'cc_et_postinfo_meta' ) ){
function cc_et_postinfo_meta( $postinfo, $date_format, $comment_zero, $comment_one, $comment_more ){
global $themename;
$postinfo_meta = '';
if ( in_array( 'author', $postinfo ) ){
$postinfo_meta .= ' ' . esc_html__('by',$themename) . ' ' . et_get_the_author_posts_link();
}
if ( in_array( 'date', $postinfo ) )
$postinfo_meta .= ' ' . esc_html__('on',$themename) . ' ' . get_the_time( $date_format );
if ( in_array( 'categories', $postinfo ) )
$postinfo_meta .= ' ' . esc_html__('in',$themename) . ' ' . get_the_category_list(', ');
if ( in_array( 'comments', $postinfo ) )
$postinfo_meta .= ' ' . et_get_comments_popup_link( $comment_zero, $comment_one, $comment_more );
if ( '' != $postinfo_meta ) $postinfo_meta = __('Posted',$themename) . ' ' . $postinfo_meta;
echo $postinfo_meta;
}
}
您收到的错误是什么?
如 WordPress 法典所述:
"Unlike style.css, the functions.php of a child theme does not override its counterpart from the parent. Instead, it is loaded in addition to the parent’s functions.php. (Specifically, it is loaded right before the parent’s file.)" (source: http://codex.wordpress.org/Child_Themes)
因此,无法覆盖 functions.php 文件,但您可以将自己的函数添加到子主题中的 functions.php 文件中。一定要给自己的函数加上前缀,这样才不会和父主题中的函数冲突。
我试图用我的子主题 function.php 文件中的函数覆盖父主题 function.php 文件,但我遇到了一些错误。这是我到目前为止所做的..
function remove_et_postinfo_meta_actions() {
remove_action('after_setup_theme','et_postinfo_meta',3);
}
add_action('init', 'remove_et_postinfo_meta_actions');
add_action('after_setup_theme', 'cc_et_postinfo_meta', 3);
if ( ! function_exists( 'cc_et_postinfo_meta' ) ){
function cc_et_postinfo_meta( $postinfo, $date_format, $comment_zero, $comment_one, $comment_more ){
global $themename;
$postinfo_meta = '';
if ( in_array( 'author', $postinfo ) ){
$postinfo_meta .= ' ' . esc_html__('by',$themename) . ' ' . et_get_the_author_posts_link();
}
if ( in_array( 'date', $postinfo ) )
$postinfo_meta .= ' ' . esc_html__('on',$themename) . ' ' . get_the_time( $date_format );
if ( in_array( 'categories', $postinfo ) )
$postinfo_meta .= ' ' . esc_html__('in',$themename) . ' ' . get_the_category_list(', ');
if ( in_array( 'comments', $postinfo ) )
$postinfo_meta .= ' ' . et_get_comments_popup_link( $comment_zero, $comment_one, $comment_more );
if ( '' != $postinfo_meta ) $postinfo_meta = __('Posted',$themename) . ' ' . $postinfo_meta;
echo $postinfo_meta;
}
}
您收到的错误是什么?
如 WordPress 法典所述:
"Unlike style.css, the functions.php of a child theme does not override its counterpart from the parent. Instead, it is loaded in addition to the parent’s functions.php. (Specifically, it is loaded right before the parent’s file.)" (source: http://codex.wordpress.org/Child_Themes)
因此,无法覆盖 functions.php 文件,但您可以将自己的函数添加到子主题中的 functions.php 文件中。一定要给自己的函数加上前缀,这样才不会和父主题中的函数冲突。