워드프레스 글 보기 페이지에서 목록으로 돌아가기 버튼 삽입
워드프레스에는 글의 상세페이지에 다시 목록으로 돌아갈 수 있는 버튼이 존재하지 않습니다.
그럴때 아래 코드를 추가하면 목록으로 돌아가는 버튼을 삽입할 수 있습니다.
부모테마의 single.php 파일을 차일드테마 폴더내에 복사한 후
single.php내의 원하는 위치에 코드를 삽입하시면 됩니다.
목록으로 돌아가는 링크를 만들때는 두가지 경우가 발생하는데요.
첫번째는 단순히 목록페이지에서 상세페이지로 들어왔을때인데 이경우에는 아래와 같이 뒤로가기 링크만 삽입해주어도 해결됩니다.
하지만 주소창에 상세페이지의 URL를 붙여넣어서 바로 접속하거나 Home의 최근 포스트 같은 리스트를 통해서 상세페이지로 오는 경우가 있습니다.
이 경우는 목록페이지 URL의 특정 패턴을 활용해서 링크를 만듭니다.
예를 들면 모든 목록 페이지의 주소 뒤에 ‘-list’를 붙인다던가 혹은 워드프레스 기본 목록 페이지 URL인 ‘/archive’나 ‘/category’ 같은 패턴을 활용할수도 있습니다.
$post_type = get_post_type();
if ( $post_type ) {
$post_type_data = get_post_type_object( $post_type );
$post_type_slug = $post_type_data->rewrite[‘slug’];
} //현재 포스트의 포스트타입 slug 체크
$link = ‘<a href=”/’ . $post_type_slug . ‘-list” >목록으로</a>’; // 포스트 리스트 페이지의 주소의 일정 패턴을 찾아서 체크합니다. 여기서는 모든 리스트 페이지의 URL에 ‘-list’를 붙였으므로 해당 Slug와 ‘-list’를 결합한 URL을 가진 페이지로 이동합니다.
return ‘<div class=”golist_wrap”>’ . $link . ‘</div>’;
혹은 아래 코드를 functions.php 파일에 넣고 숏코드 형태로 사용하셔도 됩니다.
/** 목록으로 가기 버튼 숏코드 **/
function backToList_function() {
$post_type = get_post_type();
if ( $post_type ) {
$post_type_data = get_post_type_object( $post_type );
$post_type_slug = $post_type_data->rewrite[‘slug’];
} //현재 포스트의 포스트타입 slug 체크
$link = ‘<a href=”/’ . $post_type_slug . ‘-list” >목록으로</a>’;
return ‘<div class=”golist_wrap”>’ . $link . ‘</div>’;
}
add_shortcode(‘Shortcode_name’, ‘backToList_function’);