>CMS 튜토리얼 >Word누르다 >WordPress의 Save_Post 후크에서 오류를 표시합니다

WordPress의 Save_Post 후크에서 오류를 표시합니다

Joseph Gordon-Levitt
Joseph Gordon-Levitt원래의
2025-02-16 11:50:17846검색
WordPress에서 오류 처리 및 표시 오류 WordPress는 후크에서 발생하는 오류를 관리하고 표시하는 단일 표준화 된 방법이 없습니다. 그러나 각각 고유 한 강점과 약점을 가진 몇 가지 효과적인 전략이 존재합니다. 이 기사는 세 가지 두드러진 접근법을 탐구합니다. save_post 글로벌 사용, WordPress 과도를 활용하고 리디렉션에서 GET 매개 변수를 사용합니다.

복잡성은 WordPress의 절약 후 리디렉션에서 비롯됩니다. 후크가 실행 된 후 사용자를 리디렉션하여 실행 스레드를 깨고 글로벌 변수에 대한 액세스를 잃습니다. 따라서 저장 조치에서 리디렉션 된 페이지로 오류 정보를 전송하려면 메커니즘이 필요합니다. 메소드 1 : save_post global 사용 이 간단한 메소드는 $_SESSION Global 변수에 오류 메시지를 저장합니다. 구현하는 것은 간단하고 데이터베이스 상호 작용을 피합니다

구현 :

Displaying Errors from the save_post Hook in WordPress

프로 : save_post 쉬운 구현, 데이터베이스 오버 헤드 없음 단점 :

표준 WordPress 실습이 아닙니다. 모든 설정에서 일관되게 활성화되지 않을 수있는 세션 처리에 의존합니다.

방법 2 : WordPress 과도를 사용하는 $_SESSION 과도는 WordPress- 네이티브 캐싱 메커니즘을 제공합니다. 사용 가능한 경우 개체 캐시를 사용하거나 데이터베이스로 다시 떨어지는 만료 시간으로 데이터를 저장합니다. .

구현 :

$_SESSION

    pros : WordPress 친화적이고 만료 된 데이터의 자동 정리 단점 :
  • 데이터베이스 상호 작용 객체 캐시가 구성되지 않은 경우; 에지 사례에서 잠재적 인 데이터 손실.
  • 메소드 3 : 리디렉션에 대한 get 매개 변수가 추가 이것은 업데이트 메시지를 표시하기위한 WordPress의 접근 방식을 반영합니다. 오류 코드는 REDIRECT URL에 쿼리 매개 변수로 추가됩니다.
구현 :
<code class="language-php">if ( !session_id() ) {
    session_start();
}

if ($error) {
    $_SESSION['my_plugin_errors'] = $error->get_error_message();
}

// ...in admin_notices hook...
add_action( 'admin_notices', 'my_error_message' );
function my_error_message() {
    if ( isset( $_SESSION['my_plugin_errors'] ) ) {
        ?>
        <div class="error">
            <p><?php echo $_SESSION['my_plugin_errors']; ?></p>
        </div>
        <?php
        unset( $_SESSION['my_plugin_errors'] );
    }
}</code>
  • 프로 : 고성능, 데이터베이스 액세스가 없습니다 단점 : 복제 오류 메시지가 필요합니다. 많은 수의 오류 코드로 유지 보수 오버 헤드가 증가 할 수 있습니다.
  • 결론 최적의 방법은 특정 컨텍스트에 따라 다릅니다. 과도는 WordPress 통합과 성능 사이의 균형을 잘 제공하는 반면 Get 매개 변수 접근 방식은 최상의 성능을 제공하지만 오류 메시지를보다 신중하게 관리해야합니다.

    방법은 다양한 WordPress 환경에서 가장 간단하지만 신뢰할 수 없습니다. 귀하의 요구와 프로젝트 규모에 가장 적합한 방법을 선택하십시오. $_SESSION

위 내용은 WordPress의 Save_Post 후크에서 오류를 표시합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.