Bootstrap4+_scoreの組合せのWordpressテーマであるunderstrapですが、the_excerpt()で抜粋を表示させると漏れなく続きを読むボタンが表示されます。
フックで表示させているのは予想できたものの、どこで表示させているのか小一時間悩んで、解決策を見つけましたのでメモしておきます。
なぜUnderstrapではthe_excerpt()で続きを読むを表示されるのか?
Understrapでは、wp_trim_excerptフックを使って、ボタンを出力するようにしていました。
add_filter( 'wp_trim_excerpt', 'understrap_all_excerpts_get_more_link' );
if ( ! function_exists( 'understrap_all_excerpts_get_more_link' ) ) {
/**
* Adds a custom read more link to all excerpts, manually or automatically generated
*
* @param string $post_excerpt Posts's excerpt.
*
* @return string
*/
function understrap_all_excerpts_get_more_link( $post_excerpt ) {
if ( ! is_admin() ) {
$post_excerpt = $post_excerpt . ' [...]<p><a class="btn btn-secondary understrap-read-more-link" href="' . esc_url( get_permalink( get_the_ID() ) ) . '">' . __( 'Read More...',
'understrap' ) . '</a></p>';
}
return $post_excerpt;
}
}
このフックを解除してやれば、基本余計なことはしなくなります。
add_action( 'init', function(){
remove_filter('wp_trim_excerpt','understrap_all_excerpts_get_more_link');
});
抜粋の後ろに付加される部分をカスタマイズする
別のフィルタを割り当ててあげれば、よいです。
add_filter( 'wp_trim_excerpt', '_understrap_all_excerpts_get_more_link' );
function _understrap_all_excerpts_get_more_link( $post_excerpt ) {
return $post_excerpt. ' [...]';
}
まとめ
Understrapは使いやすいテーマだと思いますが、ブログ記事周りは海外仕様なので日本向けにカスタマイズしないと、しっくりこないテーマです。
特にカスタマイズせずに使うとBootstrap色がとても強いので、テンプレートを書き換えて使う時も多いと思います。
Understrapのthe_excerptで変なボタンが出て困っている人は、今回のカスタマイズを参考にしてみてください。