워드프레스 Read More 버튼 class 변경하기
지금 이 블로그에도 적용되어 있지만 첫 화면을 최신글로 설정을 하게 되면 최신글 순으로 포스트가 나열되고 포스트마다 하단에 Read More 버튼이 출력이 된다. 그런데 현재 사용하고 있는 Sparkling 테마의 경우 Read More 버튼 클릭 때 포스트의 처음으로 이동하게 되어 있다. 첫 화면에서 포스트의 일부분을 보다가 Read More 버튼을 클릭했다면 이미 읽은 포스트 일부분의 다음부분으로 링크가 가는 게 의미적으로 맞다고 생각을 해서 결국은 코드를 수정하게 됐다. the_content 함수를 사용하면 되기 때문에 수정은 어렵지가 않았다. Sparkling 테마의 content.php 파일에서 아래 코드를 수정했다.
<?php
if ( get_theme_mod( 'sparkling_excerpts' ) == 1 ) :
the_excerpt();
else :
the_content( __('Read More', 'sparkling') );
endif;
?>
the_content 함수에 __(‘Read More’, ‘sparkling’) 를 추가했다. 그리고 기존 Read More 버튼 출력 코드는 삭제했다. 아래의 코드이다.
<p><a class="btn btn-default read-more" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php esc_html_e( 'Read More', 'sparkling' ); ?></a></p>
이제 Read More 버튼의 기본 class 인 more-link 를 Sparkling 테마에서 사용하는 btn btn-default read-more 로 치환하기 위해 아래 코드를 functions.php 파일에 추가했다.
// Read More class replace
function replace_more_link_class( $link ) {
$link = str_replace( 'class="more-link"', 'class="btn btn-default read-more"', $link );
return $link;
}
add_filter( 'the_content_more_link', 'replace_more_link_class' );
위와 같이 처리해서 원하는 대로 작동을 하게 됐다. 근데 이거 제대로 한 건지는 확신이 없다. 워드프레스 함수에 대해서 깊이있게 알지 못하기 때문이다. 오류없이 작동은 되는 듯 하니 이쯤에서 마무리하는 걸로 하자.