update meta field value after

时间:2017-08-01 作者:sanjay

我正在尝试更新元字段值。一切正常,问题是刷新页面后字段值并没有显示在字段中。

例如,当我更新名称值时,刷新页面后,其不会显示在字段值中。

<?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>
?>

1 个回复
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()

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在