我有这样一个自定义字段:
function nutrix_display_recipe_mb( $post_object ) {
global $post;
wp_nonce_field( basename( __FILE__ ), \'recipe_mb_nonce\' );
// PREPARATION TIME FIELD
$html = \'\';
$label = __( \'Preparation Time (min): \', \'nutrix\' );
$current_preptime = get_post_meta( $post_object->ID, \'nutrix_preparation_time\', true );
$html .= \'<div class="nutrix-div-25"><p><label for="nutrix_preparation_time">\' . $label . \'</label><br /><input type="number" id="nutrix_preparation_time" name="nutrix_preparation_time" value="<?php echo $current_preptime; ?>" min="0" />\';
$html .= \'</input></p></div>\';
echo $html;
}
function nutrix_save_recipe_mb( $post_id, $post ) {
// AUTOSAVE CHECK, NONCE AND MORE
if ( $post->post_type == \'nutrix-recipe\' ) {
if ( isset( $_REQUEST[\'nutrix_preparation_time\'] ) )
update_post_meta( $post_id, \'nutrix_preparation_time\', sanitize_text_field( $_POST[\'nutrix_preparation_time\'] ) );
else
delete_post_meta( $post_id, \'nutrix_preparation_time\' );
}
}
更新帖子时该字段正在保存,我可以在phpmyAdmin中看到该值。但由于某些原因,在输入保存的帖子时,保存的值不会显示在输入中。
根据我的基本知识分析,这只能由以下原因引起:
$current_preptime = get_post_meta( $post_object->ID, \'nutrix_preparation_time\', true );
或者这个
<input.... value="<?php echo $current_preptime; ?>" ...>
我没有发现我的错误。非常感谢你们的帮助。
最合适的回答,由SO网友:Vitauts Stočka 整理而成
您正在为您的$html
价值,但有<?php echo ...?>
在那里,事件永远不会运行,因为它位于单引号字符串中。像这样修复输入字段的部件
$html .= \'<div> ... <input ... value="\' . $current_preptime . \'"> ...\';