내가 본 적이없는 것은 사용자 정의 포스트 유형 메타 박스에 대해 특정 양식 필드가 올바르게 채워 졌는지 검증하는 가장 좋은 방법입니다.
필자는 생성 할 수있는 메타 박스의 사용자 정의 필드를 가장 잘 검증하는 방법에 대한 전문가 의견을 얻고 자합니다. 나의 관심은 :
- 게시물이 게시 / 업데이트되기 전에 필드 유효성 검사가 수행되도록 보장
- 다른 워드 프레스 자바 스크립트와 충돌하지 않는 클래스 / 코드 활용
- 필요에 따라 특정 필드를 정의 할 수 있지만 다른 필드는 선택 사항 일 수 있습니다
- 이메일 형식과 같은 것들에 대한 정규식을 포함하여 사용자 정의 가능한 규칙을 기반으로 필드의 유효성을 검사합니다
- 오류 /주의 사항의 시각적 표시를 제어
미리 감사드립니다!
답변
가장 쉬운 방법은 jQuery Validate 플러그인을 통해 Javascript 유효성 검사를 추가하는 것입니다 . 가장 기본적인 연습은 다음과 같습니다.
add_meta_box 호출 근처에서 jQuery Validate 플러그인과 간단한 스크립트의 JS 파일을 큐에 넣습니다.
add_action('admin_enqueue_scripts', 'add_my_js');
function add_my_js(){
wp_enqueue_script('my_validate', 'path/to/jquery.validate.min.js', array('jquery'));
wp_enqueue_script('my_script_js', 'path/to/my_script.js');
}
그런 다음 my_script.js에 다음을 포함하십시오.
jQuery().ready(function() {
jQuery("#post").validate();
});
이것은 포스트 폼에 대한 검증을 가능하게합니다. 그런 다음 사용자 정의 필드를 정의하는 add_meta_box 콜백에서 확인하려는 각 필드에 대해 “필수”클래스를 추가합니다.
<input type="text" name="my_custom_text_field" class="required"/>
게시물이 저장 / 게시 / 업데이트 될 때 클래스에 “필수”인 모든 필드의 유효성이 검사됩니다. 다른 모든 유효성 검사 옵션 (규칙, 오류 스타일 등)은 my_script.js의 document.ready 함수에서 설정할 수 있습니다. 모든 옵션에 대해서는 jQuery Validate 문서를 확인하십시오.
답변
jQuery 유효성 검사를 추가하는 완전한 기본 코드 :
-
유효성 검사 스크립트를 대기열에 넣습니다. jQuery가 이미 enqued되어 있다고 가정합니다.
add_action('admin_enqueue_scripts',function($id){ $validation',$validation_js_url = #your validation.js source; wp_register_script( 'validation',$validation_js_url,array(),'',true ); wp_enqueue_script( 'validation' ); });
-
js 파일 또는 스크립트 태그에서 :
jQuery(document).ready(function($){ var form = $("form[name='post']"); $(form).find("input[type='submit']").click(function(e){ e.preventDefault(); $(form).validate(); if($(form).valid()) { $("#ajax-loading").show(); $(form).submit(); }else{ $("#publish").removeClass().addClass("button-primary"); $("#ajax-loading").hide(); } }); });
-
완료 🙂
답변
나는이 코드를 매우 유용하게 사용했다.
$(form).find("input[type='submit']").click(function(e){
에:
$(form).find("#publish").click(function(e){
기본 양식 안에 다른 양식이 있으면 스크립트를 시작합니다.
과:
$(form).submit();
에:
$(this).submit();
‘첫 번째 줄은 게시물을 초안으로 만 저장하므로 더 이상 게시 할 수 없습니다.
여기에 모든 것을 기록 : http://allgraphics.it/blog/2012/10/jquery-validation-sui-campi-di-input-postcustom-post-di-wordpress/
답변
PHP 코드를 사용하여 메타 박스 필드의 유효성을 검사하는 문제를 해결하기 위해이 접근법을 찾았습니다.
https://tommcfarlin.com/post-meta-data-error-messages/
이것이 도움이되기를 바랍니다 (유사한 시나리오에서 저에게 효과적입니다)
답변
서버 측의 유효성을 검사하려면 가장 쉬운 옵션은 고급 사용자 정의 필드 를 사용하여 사용자 정의 필드 레이아웃을 정의한 다음 유효성 검사 필드 추가 기능을 사용하여 WordPress 관리자에서 필드 당 유효성 검사를 설정하는 것입니다.