子主题中的函数不会覆盖父主题函数

时间:2014-08-14 作者:Joseph

我已经读过并亲自尝试过了,但我似乎不知道如何使用我的子主题重写父主题函数。

我需要知道我做错了什么(我确信有几件事是错的)。

以下是父主题中的函数:

function html5_insert_image($html, $id, $caption, $title, $align, $url, $size, $alt) {
    $url = wp_get_attachment_url($id);
    $src = wp_get_attachment_image_src( $id, $size, false );
    $html5 = "<figure class=\'align$align\'><a href=\'$url\'>";
    $html5 .= "<img src=\'$src[0]\' alt=\'$alt\' />";
    if ($caption) { 
        $html5 .= "<figcaption>$caption</figcaption>";
    }
    $html5 .= "</a></figure>";
    return $html5;
}
add_filter( \'image_send_to_editor\', \'html5_insert_image\', 10, 9 );
以下是子主题中的函数:

function remove_html5_insert_image(){
    remove_filter(\'init\',\'html5_insert_image\',1);
}
add_action(\'after_setup_theme\',\'remove_html5_insert_image\');

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

首先,你感到困惑。删除过滤器的“重写函数”不同。假设您想删除过滤器,我认为您的代码应该是:

function remove_html5_insert_image(){
    remove_filter(\'image_send_to_editor\',\'html5_insert_image\', 10);
}
add_action(\'after_setup_theme\',\'remove_html5_insert_image\');
请注意,中的filter标记和priority参数remove_filter 必须匹配筛选器标记和要删除的筛选器中定义的优先级。

无论如何,由于WP 3.9,因此不需要该函数,请使用该函数使Wordpress在标题输出中使用figure和figcaption:

add_action( \'after_setup_theme\', \'cyb_theme_setup\' );
function tbn_theme_setup() {
    // See more in http://codex.wordpress.org/Function_Reference/add_theme_support#HTML5
    add_theme_support( \'html5\', array( \'caption\' ) );
}

结束

相关推荐

If is_single in functions.php

我希望删除wpautop筛选器仅对我博客中的帖子起作用。因为在某些页面,我需要autop,而在某些页面,我需要它不在那里。我使用以下规则,这是在我的主题函数中。php:remove_filter( \'the_content\', \'wpautop\' ); 因为我只想在博客上看到它,所以我在考虑if语句,我在Wordpress中搜索了条件标记页面,发现我可以使用is\\u single。但它不起作用。这是我现在使用的代码。if(is_single() ){ remove_f