web-dev-qa-db-de.com

Wie überschreibe ich übergeordnete Funktionen in untergeordneten Designs?

Ich habe herumgelesen und versucht, herauszufinden, wie das geht, aber aus irgendeinem Grund kann ich die übergeordneten Funktionen in meinem untergeordneten Thema nicht außer Kraft setzen.

Ich benutze TwentyTen als Elternteil - kann mir jemand sagen, warum diese Funktion in meinem Kinderthema die Elternfunktion nicht überschreibt, bitte?

// 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' );

Ich dachte, Sie müssten den Filter/die Aktion usw. entfernen, bevor Sie ihn wieder hinzufügen, oder?

Vielen Dank,

osu

29
Osu

Sie sollten den Code nach dem Setup des Themas ausführen.

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' );
32
sorich87