아래와 같이 수정하면
해당 if문을 타면서 switch case 구문을 타기 때문에
register 가 들어왔을 때 $title에 제대로 된 번역값이 들어가게 되어 정상적으로 한글이 출력됩니다.
public function get_title( $action = '' ) { if ( empty( $action ) ) $action = $this->get_option( 'default_action' ); if ( is_admin() ) return; if ( is_user_logged_in() && 'login' == $action && $action == $this->get_option( 'default_action' ) ) { $title = sprintf( __( 'Welcome, %s', 'theme-my-login' ), wp_get_current_user()->display_name ); } else { if ( $page_id = Theme_My_Login::get_page_id( $action ) ) { // get_title 함수로 action이 들어오는데 $get_page_id 함수를 살펴보면 // $page_id와 같은 값이 되어 해당 if문을 타게 됩니다. $title = get_post_field( 'post_title', $page_id ); } else { // 이 else문을 타지 않아 번역값을 호출하지 못합니다. switch ( $action ) { case 'register': $title = __( 'Register', 'theme-my-login' ); break; case 'lostpassword': case 'retrievepassword': case 'resetpass': case 'rp': $title = __( 'Lost Password', 'theme-my-login' ); break; case 'login': default: $title = __( 'Log In', 'theme-my-login' ); } } } return apply_filters( 'tml_title', $title, $action ); }
if ( $page_id = Theme_My_Login::get_page_id( $action ) ) { $title = get_post_field( 'post_title', $page_id ); // ---> 이 구문은 변경 후 기본 케이스로 사용합니다. } else { -- 후략 -- // 이런 조건문이 있습니다. // 조건문의 else 부분에 있는 switch case 구문을 복사하고 // default의 구문을 기존 if문에 있던 구문으로 교체합니다. // 그렇게 되면 다음과 같이 변경되겠죠. if ( $page_id = Theme_My_Login::get_page_id( $action ) ) { switch ( $action ) { case 'register': $title = __( 'Register', 'theme-my-login' ); break; case 'lostpassword': case 'retrievepassword': case 'resetpass': case 'rp': $title = __( 'Lost Password', 'theme-my-login' ); break; case 'login': default: $title = get_post_field( 'post_title', $page_id ); // default: --> 기존 if문에 있던 구문 } } else { -- 후략 --
이렇게 수정하면 해당 if문을 타면서 switch case 구문을 타기 때문에 register 가 들어왔을 때 $title에 제대로 된 번역값이 들어가게 되어 정상적으로 한글이 출력됩니다.
물론 해결방법은 여러가지가 있습니다. 하지만 해당 부분의 변경으로 인해 다른 부분이 손상될 우려가 있기 때문에 너무 많은 부분을 건들지 않되 수정되는 방법을 사용하는 것이 좋겠지요.