¿Cómo anular las funciones principales en los temas secundarios?

29

He estado leyendo e intentando descubrir cómo hacer esto, pero por alguna razón parece que no puedo anular las funciones principales en el tema de mi hijo.

Estoy usando TwentyTen como padre, ¿alguien puede decirme por qué esta función en el tema de mi hijo no anula la función principal, por favor?

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

Pensé que tenía que eliminar el filtro / acción, etc. antes de volver a agregarlo, ¿verdad?

Gracias,

osu

Osu
fuente

Respuestas:

32

Debe ejecutar el código después de la configuración del tema.

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
fuente
2
Sí. Y la razón por la que no funciona directamente es que el código del tema secundario se carga antes que el tema principal.
Rarst el