web-dev-qa-db-ja.com

Add_meta_boxが機能しないのはなぜですか?

次のコードを使用して、 _ wpsc _ 製品にメタフィールドを追加しようとしています。

/**
 * data callback
 */
function abc_callback($object, $box)
{
    echo 'callback executed!';
}

/**
 * add custom fields
 */
function abc_load_post($post_id)
{
    add_meta_box('abc_post_id', 'abc', 'abc_callback', 'post', 'normal', 'default', array());
}
add_action('load-post.php', 'abc_load_post', 10, 2);
add_action('load-post-new.php', 'abc_load_post', 10, 2);

abc_load_post関数は正常に呼び出されますが、商品編集ページには実際には何も表示されません(つまり/wp-admin/post.php)。

誰かが私が間違っていることを説明できますか?

2
Matthew

私はあなたのコードに2つの問題を見ることができます。そのメタボックスを商品ページに表示したいようですが、実際には商品の投稿タイプではなく投稿タイプに追加します。もう一つの問題はあなたがあなたの機能をつけるフックです。これを試して:

add_action( 'add_meta_boxes_{post_type}', 'abc_load_post' );

{post_type}は、実際にターゲットにしたい投稿タイプに置き換えてください。商品、投稿、またはページ。 add_meta_box()の4番目の引数は投稿タイプbtwで、これを 'post'に設定します。

5
shabushabu

メタボックスを追加するには、アクション'add_meta_boxes'を使用します。例として私の デモプラグインBasic Meta Box を見てください。

1
fuxia