programing

워드프레스:로그인 페이지에서 "비밀번호 분실" 텍스트를 사용자 정의하려면 어떻게 해야 합니까?

minimums 2023. 10. 15. 17:11
반응형

워드프레스:로그인 페이지에서 "비밀번호 분실" 텍스트를 사용자 정의하려면 어떻게 해야 합니까?

이것이 간단하다는 것은 알지만, WordPress 로그인 페이지에서 "비밀번호 분실" 텍스트를 변경하는 방법을 알 수 없습니다.

로그인 페이지에 "비밀번호를 분실했습니다"라는 링크가 있는데, 이 텍스트를 "새 비밀번호를 받으십시오"와 같은 내용으로 변경하고 싶습니다.하위 테마의 텍스트를 덮어쓰는 데 어떤 기능을 사용해야 할지 잘 모르겠습니다.

Screenshot of wordpress login screen

워드프레스 텍스트 "비밀번호 분실?"을 누릅니다.

function change_lost_your_password ($text) {

             if ($text == 'Lost your password?'){
                 $text = 'Forgot Password?';

             }
                    return $text;
             }
    add_filter( 'gettext', 'change_lost_your_password' );

이 텍스트 또는 해당 텍스트를 변경하려면 다음 기능을 사용할 수 있습니다. 슈퍼모델의 답변과 거의 동일하지만 문서화되고 코드 표준이 검증되었습니다.

/**
 * Change some text.
 *
 * @param String $text WordPress Text Stream.
 * @return String
 */
function acme_change_some_text( $text ) {
    if ( 'Lost your password?' === $text ) {
        $text = 'Forgot Your Password?';
    }

    // Important to return the text stream.
    return $text;
}

// Hook this function up.
add_action( 'gettext','acme_change_some_text' );

여기 무슨 일이 일어나고 있는지 설명할 수 있는 편리한 선물이 있습니다.

GIF

함수에는 기본 설정을 변경할 수 있는 몇 가지 파라미터가 있습니다.예를 들어 양식의 ID 이름과 요소(CSS 스타일링의 경우), "Remember Me" 확인란 인쇄 여부, 로그인이 성공한 후 사용자가 리디렉션되는 URL을 지정할 수 있습니다(기본값은 동일한 페이지에 유지됨).

<?php
if ( ! is_user_logged_in() ) { // Display WordPress login form:
    $args = array(
        'redirect' => admin_url(), 
        'form_id' => 'loginform-custom',
        'label_username' => __( 'Username custom text' ),
        'label_password' => __( 'Password custom text' ),
        'label_remember' => __( 'Remember Me custom text' ),
        'label_log_in' => __( 'Log In custom text' ), //you can change here
        'remember' => true
    );
    wp_login_form( $args );
} else { // If logged in:
    wp_loginout( home_url() ); // Display "Log Out" link.
    echo " | ";
    wp_register('', ''); // Display "Site Admin" link.
}
?>

양식 자체는 WordPress에서 코드에 의해 생성됩니다.wp-includes/general-template.phpfile. 사용자 지정 로그인 페이지가 내장된 WordPress 로그인 페이지(wp-login.php)와 다르기 때문입니다.

WordPress 6.1.0은 lost_password_html_link 필터 후크를 추가하여 이 전면에 새로운 옵션을 제공합니다.

/**
 * Replace password reset link text
 *
 * @param String $html_link HTML link to the lost password form.
 */
function _acme_better_pw_reset_text( $html_link )   {

    $link_text_default = 'Lost your password?';

    // (More intuitive for users who haven't yet set a password yet.)
    $link_text_new = 'Get a new password';

    $html_link = str_replace($link_text_default, $link_text_new, $html_link);

    return $html_link;

}
add_filter( 'lost_password_html_link', '_acme_better_pw_reset_text' );

잠재적으로 얻을 수 있는 주요 이점과gettext는 wp-admin 또는 공용 URL이 아닌 로그인 페이지에서만 실행되므로 성능에 영향을 미칠 위험이 적습니다.일반적인 WordPress 플러그인 제품군은 페이지당 수천실행될 수 있습니다.(그렇기는 하지만,gettext여기에 제안된 다른 사용자와 정확히 일치하는 문자열이라면 여전히 문제가 없을 수 있습니다.)

WordPress core처럼 번역 문자열을 사용할 수도 있습니다.

$link_text_default = __( 'Lost your password?', 'acme' );

$link_text_new = __( 'Get a new password', 'acme' );

...하지만 이런 식으로 국제화를 한다면, 변화를 원할 수도 있습니다.str_replace로.DOMDocument또는 유사하게 표시 텍스트를 특정 대상으로 지정할 수 있습니다.그렇지 않으면 악의적인 변환자가 재설정 링크 URL을 수정할 수 있습니다(이 후크는 전체에 대해 작동하므로).$link_html).

무슨 일인지 알아냈어요기본 Wordpress 로그인 파일에서 해결책을 찾고 있었는데, 이 로그인 양식은 실제로 Woocommerce에서 온 것입니다.그래서 텍스트가 들어있는 파일을 찾아서 바꿀 수 있었습니다.

혼란을 드려 죄송합니다.

언급URL : https://stackoverflow.com/questions/41022243/wordpress-how-do-i-customize-lost-your-password-text-on-login-page

반응형