몇 가지 유효성 검사를 추가해야하지만이 작업은 현재 버전의 WordPress에서 복잡해 보이지 않습니다.
기본적으로 사용자 정의 게시물 유형에 사용자 정의 필드를 추가하려면 두 단계가 필요합니다.
- 맞춤 입력란을 보유한 메타 박스 만들기
- 사용자 정의 필드를 데이터베이스에 저장
이 단계는 전체적으로 여기에 설명되어 있습니다. http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type
예:
"prefix-teammembers"라는 사용자 정의 게시물 유형에 "function"이라는 사용자 정의 필드를 추가하십시오.
먼저 메타 박스를 추가하십시오.
function prefix_teammembers_metaboxes( ) {
global $wp_meta_boxes;
add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high');
}
add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );
"접두사-팀원"을 추가하거나 편집하면 add_meta_boxes_{custom_post_type}
후크가 트리거됩니다. 기능에 대해서는 http://codex.wordpress.org/Function_Reference/add_meta_box 를 참조 하십시오add_meta_box()
. 위의 add_meta_box()
is 호출에서 prefix_teammembers_metaboxes_html
양식 필드를 추가하기위한 콜백 :
function prefix_teammembers_metaboxes_html()
{
global $post;
$custom = get_post_custom($post->ID);
$function = isset($custom["function"][0])?$custom["function"][0]:'';
?>
<label>Function:</label><input name="function" value="<?php echo $function; ?>">
<?php
}
두 번째 단계에서는 데이터베이스에 대한 사용자 정의 필드가 있습니다. save_post_{custom_post_type}
후크를 저장하면 트리거됩니다 (v 3.7부터 /programming/5151409/wordpress-save-post-action-for-custom-posts 참조 ). 이것을 연결하여 사용자 정의 필드를 저장할 수 있습니다.
function prefix_teammembers_save_post()
{
if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new?
global $post;
update_post_meta($post->ID, "function", $_POST["function"]);
}
add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );