Как я могу ограничить wordpress meta_box одной страницей? - PullRequest
2 голосов
/ 31 марта 2010

Мне нужен способ ограничить мета-поле одной страницей (ID = 84) ... если я делаю следующее, это работает, но данные sbumit не проходят и данные не сохраняются ...

add_action('admin_init','violin_init');

function violin_init()
{
    if ($_GET['post'] == '84')
    {
        wp_enqueue_style('violin_admin_css', VIOLIN_THEME_PATH . '/custom/meta.css');

        add_meta_box('violin_options_meta', 'Highlight Content', 'violin_options_meta', 'page', 'normal', 'high');

        add_action('save_post','violin_save_meta');
    }
}

1 Ответ

1 голос
/ 31 марта 2010

Я нашел решение, которое работает, но хотелось бы, чтобы был путь через WordPress API и / или один из глобалов WordPress ...

следующие работы:

if ($_GET['post'] == '84' OR $_REQUEST['post_ID'] == '84')

Кроме того, вы также можете фильтровать по определенному шаблону:

$post_id = $_GET['post'] ? $_GET['post'] : $_POST['post_ID'] ;

$template_file = get_post_meta($post_id,'_wp_page_template',TRUE);

if ($template_file == 'home.php') {} // by template file

if ($post_id == 84) {} // by page ID

Я написал пост в блоге: Meta Box WordPress для конкретной страницы

...