我正在尝试更新元字段值。一切正常,问题是刷新页面后字段值并没有显示在字段中。
例如,当我更新名称值时,刷新页面后,其不会显示在字段值中。
<?php
update_post_meta($post_id, \'auction_model\', trim( $_POST[\'Product_model\']));
$year=get_post_meta($post_id , \'Product_Year\',true );
<form id="wdm-add-auction-form" class="auction_settings_section_style" action="" method="POST">
<table>
<tr valign="top">
<th scope="row">
<label for="auction_model"><?php _e(\'Product Model\', \'wdm-ultimate-auction\');?></label>
</th>
<td>
<input name="auction_model" type="text" id="auction_model" class="regular-text" value="<?php echo $model;?>"/>
</td>
</tr>
</table>
</form>
?>
SO网友:hwl
您没有检索的保存值$model
.
$model = get_post_meta( $post_id, \'auction_model\', true );
您应该在检索时或至少在回显之前清理这些值:
<?php echo sanitize_text_field( $model ); ?>
您也可以在调用之前检查值
update_post_meta()
提交表单时,除非您打算在每次加载此页面时运行该操作。如果没有其他问题,你至少可以检查一下
$_POST
具有值:
if ( isset( $_POST[\'auction_model\'] && ! empty( $_POST[\'auction_model\'] ) ) {
update_post_meta( $post_id, \'auction_model\', sanitize_text_field( $_POST[\'auction_model\'] ) );
}
如果表单字段为空,也可以删除meta:
else {
delete_post_meta( $post_id, \'auction_model\' );
}
您可以在
sanitizing and validating user input here.
更多关于三个*_post_meta()
上述功能:
update_post_meta()
delete_post_meta()
get_post_meta()