Comment remplacer les fonctions parent dans les thèmes enfants?

29

J'ai lu et essayé de comprendre comment le faire, mais pour une raison quelconque, je n'arrive pas à remplacer les fonctions parent dans mon thème enfant.

J'utilise TwentyTen en tant que parent - quelqu'un peut-il me dire pourquoi cette fonction dans mon thème enfant ne remplace pas la fonction parent s'il vous plaît?

// Override read more link
function osu_twentyten_continue_reading_link() {
 return ' <a href="'. get_permalink() . '">' . __( 'Read on <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' );

Je pensais que vous deviez supprimer le filtre / l'action, etc. avant de le rajouter, non?

Merci,

osu

Osu
la source

Réponses:

32

Vous devez exécuter le code après la configuration du thème.

function osu_twentyten_continue_reading_link() {
    return ' <a href="'. get_permalink() . '">' . __( 'Read on <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' );
sorich87
la source
2
Oui. Et la raison pour laquelle cela ne fonctionne pas directement est que le code du thème enfant est chargé avant le thème parent.
Rarst