모두 동일한 테마를 사용하는 경우 부모 테마의 functions.php에서 각 맞춤 게시물 유형을 선언 할 수 있습니다 (자식 테마가있는 경우에 해당). 다중 사이트는 동일한 플러그인과 테마를 공유하므로 해당 테마를 사용하는 모든 사이트에 대해 맞춤형 게시물 유형이 등록됩니다.
사용자 정의 필드는 약간 다릅니다. 내가 권장하는 Advanced Custom Fields과 같은 플러그인을 사용할 수는 있지만 각 사이트에 대해 활성화해야합니다. 사용자 정의 필드를 사후 편집 화면에서 바로 사용할 수있게하려면 ID 필드 1에 해당하는 각 필드에 대해 add_post_meta()
을 추가 할 수 있습니다. 모든 Wordpress 인스턴스는 ID가 1 인 게시물, 기본 게시물 . 이 필드는 "사전 등록"됩니다. 카테고리는 이미 Wordpress 분류이므로 사용자가 혼란스럽게 할 수 있으므로 "카테고리"게시물 유형 및 필드를 생략합니다. 이것은 이상적인 솔루션은 아니지만 작동합니다. 저는 Wordpress 인스턴스를 자동으로 배치 한 치과 용 오피스 소프트웨어의 사용자 정의 필드를 미리 채울 때해야했습니다.
add_action('init', 'create_custom_post_types');
function create_custom_post_types() {
register_post_type('films',
array(
'labels' => array(
'name' => __('Films'),
'singular_name' => __('Film')
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'custom-fields')
)
);
register_post_type('actors',
array(
'labels' => array(
'name' => __('Actors'),
'singular_name' => __('Actor')
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'custom-fields')
)
);
}
// Check if the post meta has been added to our default post.
// If not, add our post_meta to make it available.
if(!get_post_meta(1, 'trailer_for_film')) {
add_post_meta(1, 'trailer_for_film', 'default trailer', true);
add_post_meta(1, 'actors', 'default actor', true);
}
동일한 테마를 공유 할 예정입니까? – jboneca
예, 그렇습니다! – Alan