通过UPDATE_POST_META检索后,如何将META_VALUE保存为数值?

时间:2020-05-21 作者:meicelinho

我试过像$meta\\u rwp\\u user\\u score=(number\\u format\\u i18n($meta\\u rwp\\u user\\u score,2)),但这是行不通的。我在哪里使用它?

<?php
$meta_rwp_user_score[\'meta_rwp_user_score\'] = get_post_meta(($anbieter_id),\'rwp_user_score\',true);

foreach ( $meta_rwp_user_score as $key => $value ) :
  if ( \'revision\' === $post->post_type ) {
    return;
  }

  if ( get_post_meta( $postid, $key, false ) ) {
    // If the custom field already has a value, update it.
    update_post_meta( $postid, $key, $value );
  } else {
    // If the custom field doesn\'t have a value, add it.
    add_post_meta( $postid, $key, $value);
  }

  if ( ! $value ) {
    // Delete the meta key if there\'s no value
    delete_post_meta( $postid, $key );
  }

endforeach;
?>

1 个回复
最合适的回答,由SO网友:simongcc 整理而成

根据数据库模式meta_value 存储为longtext. 这可能是因为通用目的。所以,要获得一个数值。这样做有两个部分。

保存

虽然它是以长文本形式存储的,但它仍然适合准备正确的数字格式,以便在检索时,它可能是预期的转换值。因此,对于保存前的检查,可以使用is_float()is_numeric() 等等,以确保预期的存储值。

如果从数据库中获取元值后需要类型浮点数才能在代码中正确操作它,则进行检索。您可以考虑使用php内置函数floatval() 用于在使用之前转换浮点数。另一个是intval() 用于整数。

$meta_rwp_user_score[\'meta_rwp_user_score\'] = floatval( get_post_meta(($anbieter_id),\'rwp_user_score\',true) );

// any text will be converted to 0

// manipulate as needed

相关推荐

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

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