捐血一袋救人一命

2016年11月24日 星期四

如何修改 Continue reading 文字

首先要去查一下佈景主題裡 哪裡呼叫執行,通常是在 functions.php

add_filter( 'get_the_excerpt', 佈景主題自定的 Reading More函式名稱' );
add_filter('excerpt_more', 佈景主題自定的 Reading More函式名稱');
add_filter('the_content_more_link', 佈景主題自定的 Reading More 函式名稱');

以上三個是佈景主題呼叫 add_filter 去修改 wordpres 內定 Read more 文字。
如果有發現的話,記下佈景主題的函式名稱,
然後在 functions.php 程式碼最後呼叫執行對應的

remove_filter( 'get_the_excerpt', 佈景主題自定的 Reading More函式名稱' );
remove_filter('excerpt_more', 佈景主題自定的 Reading More函式名稱');
remove_filter('the_content_more_link', 佈景主題自定的 Reading More 函式名稱');


接下來寫好自定 Read More 函式,再去呼叫 add_filter,讓你自定的函式與 wordpress 掛勾(hook)

例如:在 Twenty Eleven 佈景主題

remove_filter( 'excerpt_more', 'twentyeleven_auto_excerpt_more' );

function my_excerpt_more($more) {
    global $post;
    return '<a class="moretag" href="'. get_permalink($post->ID) . '">繼續閱讀</a>';
}
add_filter('excerpt_more', 'my_excerpt_more');

remove_filter( 'get_the_excerpt', 'twentyeleven_custom_excerpt_more' );

function my_continue_reading_link() {
    return ' <a class="moretag" href="'. esc_url( get_permalink() ) . '">' . __( '繼續閱讀 <span class="meta-nav">&rarr;</span>', 'twentyeleven' ) . '</a>';
}

function my_custom_excerpt_more( $output ) {
    if ( has_excerpt() && ! is_attachment() && ! is_admin() ) {
        $output .= my_continue_reading_link();
    }
    return $output;
}
add_filter( 'get_the_excerpt', 'my_custom_excerpt_more' );

PS.如果佈景主題本身有定義 Read More 文字,你卻沒呼叫 remove_filter ,會造成新舊 Read More 文字都同時出現。

0 意見: