홈페이지 » WordPress » WordPress 사용자 지정 메타 상자 이해

    WordPress 사용자 지정 메타 상자 이해

    이전 게시물에서는 WordPress 사용자 정의 필드에 대해 이야기했습니다.이 필드를 사용하면 WordPress가 사후 편집 화면에서 제공하는 사용자 정의 필드 상자를 사용하여 게시물에 새 항목을 추가하고 출력 할 수 있습니다. 그러나 사용자 정의 필드 상자 사용에 익숙하지 않은 경우 (우리 모두 사용자의 기본 설정이 있음) 다음 방법 중 하나를 사용할 수 있습니다. 메타 상자를 만들 수 있습니다.

    메타 박스는 맞춤 상자 우리는 우리 자신 만의 것을 만들 수 있습니다. 새 항목을 추가하는 입력 또는 기타 대화식 UI 포함 게시물 또는 페이지 수 사용자 지정 필드 상자 대신 메타 상자를 사용하여 동일한 작업을 수행 할 수 있습니다. 하나 만드는 방법을 살펴 보겠습니다..

    Hongkiat.com에 대한 추가 정보 :

    • WordPress에서 미디어 업로드 디렉토리 사용자 정의
    • WordPress 편집기 스타일 사용자 정의
    • 사용자 정의 “하디” WordPress 관리 표시 줄에서
    • WordPress 사용자를위한 사용자 정의 분류 등록
    • WordPress 메뉴에서 아이콘 표시

    메타 박스 만들기

    WordPress는 API 함수를 제공합니다. add_meta_box, 곧바로 메타 박스를 만들 수 있습니다. 이것은 최대한의 기본 형태이다..

     함수 add_post_reference () add_meta_box ( 'post-reference', 'Reference', 'referenceCallBack', 'post');  add_action ( 'add_meta_boxes', 'add_post_reference'); function referenceCallBack () echo 'Hello World' 

    그만큼 add_meta_box ID, 메타 박스 제목, 'Hello World'를 호출 할 콜백 함수 및 표시 할 게시물 유형의 네 가지 매개 변수를 취합니다. 이 경우 게시물 편집 페이지에 새 메타 상자가 지정됩니다 (페이지에서도 작동 함).

    사후 편집 섹션에서 다음과 같이 새 상자를 찾을 수 있습니다..

    위에서 볼 수 있듯이 새로운 메타 박스는 WYSIWYG 편집기 아래에 나타납니다. 사이드 바에 추가하고 싶으면 사이드 바의 제일 위에 사이드 바를 올리려면 포스트 파라미터 뒤에 'side'를 추가하고 'high'와 함께 추가하면됩니다..

     function add_post_reference () add_meta_box ( 'post-reference', 'Reference', 'referenceCallBack', 'post', 'side', 'high');  add_action ( 'add_meta_boxes', 'add_post_reference'); 

    이제 당신은 그것을 게시 상자…

    이제 'Hello World'텍스트를 대체하십시오. 새 항목에 대한 입력 필드와 같은 요소를 추가해 보겠습니다..

    이 예에서는 Reference Name을 추가하는 입력 필드와 Reference Link를위한 입력 필드로 구성된 두 개의 입력 필드를 추가합니다.

     function referenceCallBack ($ post) wp_nonce_field ( 'reference_meta_box', 'reference_nonce'); $ name_value = get_post_meta ($ post-> ID, '_post_reference_name', true); $ link_value = get_post_meta ($ post-> ID, '_post_reference_link', true); 에코 ''; 에코 ''; 에코 '

    '. '참조 이름 추가'. '

    '; 에코 ''; 에코 ''; 에코 '

    '. '참조의 링크를 추가하십시오.'

    ';

    게시물 편집 페이지를 새로 고치십시오. 그러면이 두 입력이 추가 된 것을 볼 수 있습니다..

    그만큼 $ name_value$ link_value 변수는 데이터베이스에서 항목을 검색하고이를 입력 필드에 채 웁니다. 데이터베이스에 항목을 가져 오려면 해당 항목을 작성해야합니다..

    이러한 입력을 통해 추가 된 항목을 데이터베이스에 안전하게 채울 수있는 몇 줄의 코드를 추가해야합니다.. “안전하게” 여기에는 합법적이고 인증 된 항목 (해커 또는 다른 비인가 직원이 아닌 사람)이 포함됩니다. 항목을 저장하려면 새 함수를 만들어야합니다. 함수의 이름을 지어 봅시다. save_post_reference, 그렇게.

     함수 save_post_reference ($ post_id)  ​​add_action ( 'save_post', 'save_post_reference'); 

    앞서 언급 한 것처럼 보안을 위해 몇 가지 사항을 확인해야합니다.

    (1) 우리는 사용자가 게시물을 수정할 수있는 기능이있다..

     if (! current_user_can ( 'edit_post', $ post_id)) return;  

    (2) 우리는 또한 Nonce가 설정되어 있는지 확인하십시오..

     if (! isset ($ _POST [ 'reference_nonce'])) return;  if (! wp_verify_nonce ($ _POST [ 'reference_nonce'], 'reference_meta_box')) return;  

    (삼) 그런 다음 데이터가 자동 저장되지 않도록해야합니다. 저장은 한 번만 수행 할 수 있습니다. “구하다” 또는 “최신 정보” 버튼이 클릭되었습니다..

     if (정의 된 ( 'DOING_AUTOSAVE') && DOING_AUTOSAVE) return;  

    (4) 우리는 또한 우리의 두 가지 투입물, post_reference_namepost_reference_link, 우리가 항목을 제출하기 전에 설정되고 준비되었습니다..

     if (! isset ($ _POST [ 'post_reference_name']) ||! isset ($ _POST [ 'post_reference_link'])) return;  

    (5) 그리고 항목은 웹 사이트 보안을 손상시킬 수있는 예기치 않은 문자가 없어야합니다. 이것을 확인하려면 WordPress 내장 함수를 사용할 수 있습니다 sanitize_text_field.

     $ reference_name = sanitize_text_field ($ _POST [ 'post_reference_name']); $ reference_link = sanitize_text_field ($ _POST [ 'post_reference_link']); 

    이제 데이터베이스에 항목을 저장할 준비가되었습니다.

     update_post_meta ($ post_id, '_post_reference_name', $ reference_name); update_post_meta ($ post_id, '_post_reference_link', $ reference_link); 

    이제 시도해 볼 수 있습니다. 입력 필드에 내용을 입력하고 “최신 정보” 저장 버튼.

    결론

    우리는 방금 두 개의 입력으로 구성된 메타 박스를 만들었습니다. 라디오 버튼이나 선택 상자와 같은 다른 유형의 입력으로 상자를 확장 할 수 있습니다. 이 예제는 매우 기본적인 것일 수 있지만, 일단 익숙해지면 훨씬 더 복잡한 용도로이 메타 박스를 사용할 수 있습니다. 당신이 이것을 사용할 것인지 그리고 그것을 위해 무엇을 사용할 것인지 알려주십시오..