【问题标题】:Storing Json value in add_post_meta在 add_post_meta 中存储 Json 值
【发布时间】:2015-02-12 18:41:38
【问题描述】:

如何将这个 Json 值存储在 add_post_meta 中

  $offer_name= $item['data'][$i]['Offer']['name'];

  add_post_meta($post_id, 'offer_name', $offer_name);

$offer_name 的 json 值不会被存储,但普通字符串会被存储。

更新 1:这是我测试的方式。

case 1 // 使用 json 值不会被存储..

 $offer_name= $item['data'][$i]['Offer']['name']; 

echo $offer_name; // the value gets echoed .

 add_post_meta($post_id, 'offer_name', $offer_name); // the value of $offer_name doesn't  get stored 

case 2 // 没有 json 的值被存储..

  $offer_name="My  Name"; 

 add_post_meta($post_id, 'offer_name', $offer_name); // the value of $offer_name does get stored 

更新 2:如果我将 json 数据存储在“{}”中,那么该值将存储在 WordPress 中

$offer_name ="{$item['data'][$i]['Offer']['name']}";


add_post_meta($post_id, 'offer_name', $offer_name);

提前致谢

【问题讨论】:

  • 那么,是 JSON 值还是字符串?你期望发生什么?
  • 如果我回显 $offer_name 它显示回显值。但它没有存储在自定义字段中。但是如果存储一个字符串 eg= $offer_name 'my name'; ;值存储在自定义字段中。
  • 这似乎很奇怪:我认为问题不在于 JSON 本身,因为 add_post_meta() 将接受混合变量没有问题。您可能需要发布更多代码。你如何检查它是否被存储?你只是在呼应我们还是在使用print_r()var_dump()
  • 我使用了 echo 、print_r() 和 var_dump() 。它显示了值..但它无法存储在自定义字段中..
  • 我的意思是你如何检查它是否被存储?您需要验证它是否真的没有被存储,或者它是否没有正确获取它,或者它是否没有正确显示它。这是三个不同的问题,它们都会表现出相同的症状。

标签: php json wordpress variables


【解决方案1】:

您需要使用json_encode()。这将返回一个 JSON 格式的字符串,您可以使用它来保存在您的数据库中。

请注意,对于 ë、â、Æ 等字符,在尝试将其保存到数据库中之前,您应该在 JSON 编码字符串上使用 addslashes()。这样,一旦你解码了 JSON 字符串,这些特殊字符就可以被正确地看到。

(是的,这是非常旧的,但我自己正在寻找一些东西,并想为什么不呢?)

【讨论】:

猜你喜欢
  • 2012-07-10
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
  • 1970-01-01
  • 2015-07-02
相关资源
最近更新 更多