2016-07-09 4 views
3

Разработка плагина wordpress, где я создаю страницу через файл index.php, на этой странице также используется настраиваемый шаблон, который требует, чтобы пользователь редактировал информацию в мета-окне.Wordpress - Показать метабокс только на определенной странице

Я добавил метабокс перед плагинами, но никогда не был в этой ситуации - как я могу указать мета-окно, чтобы показывать только на этой странице?

Был бы открыт для всех предложений - я уверен, что это что-то простое!

Спасибо, Allan

ответ

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'); 
} 

Проверяется отредактирован страница имеет надлежащий идентификатор или с помощью шаблона. Выберите один и измените идентификатор, имя шаблона.

+0

Эта условная валидация работает с плагином ** metabolox **, просто добавьте 'add_filter ('rwmb_meta_boxes', 'function');' in conditional (if) – Gendrith

+0

Также вы можете сделать это в functions.php ** '$ title_search = get_the_title ($ post_id);' ** и сделать валидации по заголовку, и вы не будете беспокоиться об изменении номера $ post_id (если вам нужно выполнить миграцию или пользователь удалит страницу и создаст ее снова) – Gendrith

Смежные вопросы