programing

wordpress 포스트 유효성 검사 추가

lovejava 2023. 6. 8. 19:05

wordpress 포스트 유효성 검사 추가

당황스럽지만 워드프레스에 새 게시물을 추가하는 동안 기본적으로 유효성 검사가 없는 것을 보고 놀랐습니다.제목과 내용을 입력하지 않고 퍼블리시만 누르면 게시물이 게시되었다고 뜨며 프론트엔드를 보면 새 게시물이 없습니다.

워드프레스가 어떻게 게시물을 추가하기 위한 간단한 검증을 건너뛸 수 있습니까?적어도 서버 측 유효성 검사는 예상했습니다(클라이언트 측이 아닌 경우)유효성 검사를 건너뛰는 이유를 알 수 없습니다.그들이 그것을 새로운 버전에 포함시키는지 여부는 언론에 달려 있습니다.

하지만 워드프레스에 게시물을 추가하기 위해 자바스크립트(또는 jquery) 검증을 어떻게 추가할 수 있는지 알고 싶습니다.저는 그것이 전혀 어렵지 않아야 한다는 것을 압니다.하지만 워드프레스를 처음 접하는 저는 힌트를 얻고 싶습니다.

Firebug에서 다음과 같이 폼이 렌더링되는 것을 확인할 수 있었습니다.

<form id="post" method="post" action="post.php" name="post">
...
</form>

자바스크립트 유효성 검사 코드를 어디에 두어야 합니까?

벌레가 아니라구요WordPress(개정판 AFAIK를 저장하기 위해) 의도적으로 이 작업을 수행합니다.어쨌든, 이것은 효과가 있을 수 있지만 이것보다 더 나은 방법일 수 있습니다(당신의 안에 있습니다).functions.php파일)

add_action( 'admin_notices', 'custom_error_notice' );
function custom_error_notice(){
    global $current_screen, $post;
    if ( $current_screen->parent_base == 'edit' ){
        if((!$post->post_name && !$post->post_content) && $_GET['post']) {
            wp_redirect(admin_url('post-new.php?empty=1'));
        }
        if($_GET['empty']) echo '<div class="error"><p>Warning - Please fill up all fields correctly!</p></div>';
    }
}

또한 이는 다음을 사용하기 위해 필요합니다.wp_redirect에게avoid header already sent error message이것을 당신의 안에 붙입니다.functions.php다른 모든 코드의 맨 위에

function callback($buffer) {
    // You can modify $buffer here, and then return the updated code
    return $buffer;
}
function buffer_start() { ob_start("callback"); }
function buffer_end() { ob_end_flush(); }

// Add hooks for output buffering
add_action('init', 'buffer_start');
add_action('wp_footer', 'buffer_end');

음, 당신 말이 맞아요, 워드프레스는 포스트 편집 화면에서 유효성을 확인하지 않습니다.

검증내용을 쉽게 확인할 수 있는 Post require Fields 플러그인을 사용해 보는 것은 어떻습니까? 자바스크립트나 PHP 코드를 한 줄도 작성할 필요가 없습니다.

다음은 백엔드 관리를 위한 스크린샷입니다.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/17334464/wordpress-add-post-validation