2016-07-09 6 views
3

이 페이지는 index.php 파일을 통해 페이지를 만드는 곳에서 사용자가 메타 박스의 정보를 편집해야하는 사용자 정의 템플리트를 사용합니다.Wordpress - 특정 페이지에만 metabox 표시

이전에는 metaboxes를 플러그인에 추가했지만이 상황에서는 본 적이 없었습니다.이 페이지에만 표시 할 메타 박스를 어떻게 지정합니까?

모든 제안에 공개 될 것입니다 - 나는 그것이 단순한 것이라고 확신합니다!

감사합니다, 앨런

답변

3

functions.php

add_action('admin_init','my_meta_init'); 
function my_meta_init() 
{ 
$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ; 
// checks for post/page ID 
if ($post_id == '84') 
{ 
    add_meta_box('my_all_meta_1', 'My Custom Meta Box 1', 'my_meta_setup_1', 'page', 'normal', 'high'); 
} 
$template_file = get_post_meta($post_id,'_wp_page_template',TRUE); 
// check for a template type 
if ($template_file == 'home.php') 
{ 
    add_meta_box('my_meta_2', 'My Custom Meta Box 2', 'my_meta_setup_2', 'page', 'normal', 'high'); 
} 

편집 페이지가 적절한 ID 또는 템플릿을 사용하여이 있다면 그것은 확인이를 추가합니다. 하나를 선택하고 ID, 템플릿 이름을 변경하십시오.

+0

조건부 유효성 검사는 ** metabox plugin **에서 작동하며,'add_filter ('rwmb_meta_boxes', 'function');을 조건부 (if) 안에 넣으십시오. – Gendrith

+0

당신도 functions.php에서 이것을 할 수 있습니다 ** '$ title_search = get_the_title ($ post_id);'** 그리고 제목에 따라 검증을하고, $ post_id의 번호를 변경하는 것에 대해 걱정할 필요가 없습니다 (마이그레이션해야하거나 사용자가 페이지를 삭제하고 다시 작성해야하는 경우) – Gendrith

관련 문제