2

メタ ボックスを 1 ページ (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');
    }
}
4

1 に答える 1

1

機能する解決策を見つけましたが、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

私はそれについてブログ記事を書きました: Page Specific WordPress Meta Box

于 2010-03-31T05:27:00.383 に答える