我有个问题。“我的字段”显示在元框中,但保存不起作用:
<?php
// Create the metabox and fields
function food_meta_box_markup($object) {
wp_nonce_field(basename(__FILE__), "meta-box-nonce");
?>
<div>
<label for="np-calories" class="np-label"><?php _e(\'Energy (kcal)\', \'nutriplus\') ?></label>
<input name="np_calories" type="number" class="np-field"
value="<?php echo get_post_meta($object->ID, "np_calories", true); ?>">
</div>
<?php
}
function add_food_meta_box() {
add_meta_box("food-meta-box", __(\'Nutritional Information\', \'nutriplus\'), "food_meta_box_markup", "np-food", "side", "high", NULL);
}
add_action("add_meta_boxes", "add_food_meta_box");
// Save the metabox and fields
function food_save_meta_box_data($post_id) {
// verify taxonomies meta box nonce
if (!isset($_POST[\'food_meta_box_nonce\']) || !wp_verify_nonce($_POST[\'food_meta_box_nonce\'], basename(__FILE__))) {
return;
}
// return if autosave
if (defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) {
return;
}
// Check the user\'s permissions.
if (!current_user_can(\'edit_post\', $post_id)) {
return;
}
if ($post->post_type == "np-food") {
// store custom fields values
// energy kcal string
if (isset($_REQUEST[\'np_calories\'])) {
update_post_meta($post_id, \'np_calories\', sanitize_text_field($_POST[\'np_calories\']));
}
}
}
add_action(\'save_post_food\', \'food_save_meta_box_data\');
?>
我的Metabox值不保存:(
当做
巴迪
最合适的回答,由SO网友:rajat.gite 整理而成
这是我的工作代码
// Add meta box
function frontpage_meta_boxes( $post ){
global $post;
if(!empty($post))
$page_template = get_post_meta( $post->ID, \'_wp_page_template\', true );
{
$pageTemplate = get_post_meta($post->ID, \'_wp_page_template\', true);
if($pageTemplate == \'page-home.php\' )
{
add_meta_box( \'frontpage_meta_box\', __( \'Features\' ), \'frontpage_meta_box\', \'page\', \'advanced\', \'high\' );
}
}
}
add_action( \'add_meta_boxes_page\', \'frontpage_meta_boxes\' );
// builds our meta box
function frontpage_meta_box( $post ){
// make sure the form request comes from WordPress
wp_nonce_field( basename( __FILE__ ), \'frontpage_meta_box_nonce\' );
// retrieve the _manuf_url current value
$manufacturer_url = get_post_meta( $post->ID, \'_manuf_url\', true );
?>
<h3><?php _e( \'Manufacturer URL\' ); ?></h3>
<p>
<input type="text" name="manufacturer-url" value="<?php echo $manufacturer_url; ?>" />
</p>
<?php
}
// saves our data
function frontpage_save_meta_box_data( $post_id ){
// verify meta box nonce
if ( !isset( $_POST[\'frontpage_meta_box_nonce\'] ) || !wp_verify_nonce( $_POST[\'frontpage_meta_box_nonce\'], basename( __FILE__ ) ) ){
return;
}
// return if autosave
if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ){
return;
}
// Check the user\'s permissions.
if ( ! current_user_can( \'edit_post\', $post_id ) ){
return;
}
// manufacturer url string
if ( isset( $_REQUEST[\'manufacturer-url\'] ) ) {
update_post_meta( $post_id, \'_manuf_url\', sanitize_text_field( $_POST[\'manufacturer-url\'] ) );
}
// store custom fields values
}
add_action( \'save_post_page\', \'frontpage_save_meta_box_data\' );