Как переопределить функции родительской темы в дочерней?

23 янв. 2011 г., 15:28:02
Просмотры: 17K
Голосов: 31

Я изучил информацию по этому вопросу, но почему-то не могу переопределить функции родительской темы в своей дочерней теме.

Я использую TwentyTen в качестве родительской темы - может кто-нибудь объяснить, почему эта функция в моей дочерней теме не переопределяет родительскую функцию?

// Переопределяем ссылку "Читать далее"
function osu_twentyten_continue_reading_link() {
 return ' <a href="'. get_permalink() . '">' . __( 'Читать далее <span class="meta-nav">&rarr;</span>', 'twentyten-child' ) . '</a>';
}
function osu_twentyten_auto_excerpt_more( $more ) {
 return ' &hellip;' . osu_twentyten_continue_reading_link();
}
remove_filter( 'excerpt_more', 'twentyten_auto_excerpt_more' );
add_filter( 'excerpt_more', 'osu_twentyten_auto_excerpt_more' );

Я думал, что нужно сначала удалить фильтр/действие и только потом добавлять его заново, верно?

Спасибо,

osu

0
Все ответы на вопрос 1
1
33

Код следует запускать после настройки темы.

function osu_twentyten_continue_reading_link() {
    return ' <a href="'. get_permalink() . '">' . __( 'Читать далее <span class="meta-nav">&rarr;</span>', 'twentyten-child' ) . '</a>';
}

function osu_twentyten_auto_excerpt_more( $more ) {
    return ' &hellip;' . osu_twentyten_continue_reading_link();
}

function my_child_theme_setup() {
    remove_filter( 'excerpt_more', 'twentyten_auto_excerpt_more' );
    add_filter( 'excerpt_more', 'osu_twentyten_auto_excerpt_more' );
}

add_action( 'after_setup_theme', 'my_child_theme_setup' );
23 янв. 2011 г. 15:34:42
Комментарии

Да. И причина, по которой это не работает напрямую, заключается в том, что код дочерней темы загружается раньше кода родительской темы.

Rarst Rarst
23 янв. 2011 г. 16:37:29