私は先週、カスタム投稿タイプを作る最初のプラグインを作成しました。これがうまくいったので、私はすでに持っているコードをコピーして貼り付け、別の投稿タイプになるように修正しました。ただし、何らかの理由で、add_meta_box用に設定したコールバックが呼び出されていません。誰もがこれがなぜなのか私に言うことができます。
/**
* Adds a meta box to the post editing screen
/***************************************************************************/
function package_custom_meta()
{
add_meta_box( 'package_meta', __( 'Package Title', 'package_textdomain' ), 'package_meta_callback', 'package' , 'high' );
echo "package_custom_meta CALLED";
}
add_action( 'add_meta_boxes', 'package_custom_meta' );
/**
* Outputs the content of the meta box
/***************************************************************************/
function package_meta_callback( $post )
{
echo "package_meta_callback CALLED";
wp_nonce_field( basename( __FILE__ ), 'package_nonce' );
$package_stored_meta = get_post_meta( $post->ID );
?>
<p>
<label for="meta-package-512mb" class="package-row-title"><?php _e( '512MB RAM', 'package_textdomain' )?></label>
<input type="text" name="meta-package-512mb" id="meta-package-512mb" value="<?php if ( isset ( $package_stored_meta['meta-package-512mb'] ) ) echo $package_stored_meta['meta-package-512mb'][0]; ?>" />
</p>
<p>
<label for="meta-package-1gb" class="package-row-title"><?php _e( '1GB RAM', 'package_textdomain' )?></label>
<input type="text" name="meta-package-1gb" id="meta-package-1gb" value="<?php if ( isset ( $package_stored_meta['meta-package-1gb'] ) ) echo $package_stored_meta['meta-package-1gb'][0]; ?>" />
</p>
<?php
}
私たちもエラーを見逃していたようです。
Add_meta_boxを呼び出すときに、コンテキストの引数をスキップして優先順位に直接進みました。 "high"はコンテキスト引数に使用可能な文字列ではないため、この関数は暗黙のうちに失敗します。
コンテキストの文字列を追加すると、それが修正されます。
add_meta_box( 'package_meta', __( 'Package Title', 'package_textdomain' ), 'package_meta_callback', 'package', 'normal', 'high' );
私にとってはscreen
paramがうまくいったので空文字列
add_meta_box(
'tribe_events_event_details',
'Post Events Calendar',
'bw_events_chooser_box',
'', // screen
'normal',
'high'
);