Theme My Login 번역불가 오류 수정
아래와 같이 수정하면 해당 if문을 타면서 switch case 구문을 타기 때문에 register 가 들어왔을 때 $title에 제대로 된 번역값이 들어가게 되어 정상적으로 한글이 출력됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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 ); } |
1 |
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에 제대로 된 번역값이 들어가게 되어 정상적으로 한글이 출력됩니다. 물론 해결방법은 여러가지가 있습니다. 하지만…