在Wordpress中,我在“主题编辑个人资料”页面中创建了一些自定义字段,其中一个允许我输入用户地址。 该地址自动存储在表wp_usermeta下的WordPress DB中。 (自定义字段称为user_address)。
从wp_usermeta,名为meta_key的列有一个值' user_address'。但我试图收集的内容是它的meta_value等价物。
截图:
这里我的PHP代码将数据转换为JSON格式:
......
$row=$db->prepare('select * from wp_usermeta');
......
foreach($row as $rec)//foreach loop
{
$json_array['meta_key']=$rec['meta_key'];
array_push($json_data,$json_array);
}
来自JS文件:
request('file.php', function(data) {
var data = JSON.parse(data.responseText);
for (var i = 0; i < data.length; i++) {
console.log(data[i].meta_key);
}
........
我的问题在这里。从数据[i]我需要得到所有&#39; user_address&#39; (在meta_key中)和meta_value中存储的等价值,如上面的screeshot所示,但不幸的是我不知道如何获得它。 我可以获取所有meta_key值,但我不知道如何将user_address与meta_value相关联。
我试过了:
data[i].meta_key.user_address.meta_value
data[i].user_address.meta_value
data[i].meta_key[user_address].meta_value
data[i].meta_key['user_address'].meta_value
有什么建议吗? 感谢
答案 0 :(得分:1)
好的,所以表格中的user_address
不是密钥,而是meta_key
的值。从逻辑上思考,您的最终结果是,您希望meta_value
的{{1}}具有meta_key
的值。
一种方法,将php中的foreach循环更改为:
user_address
现在,如果您转储该数组,它将如下所示:
foreach($row as $rec)
{
$json_array[$rec['meta_key']]=$rec['meta_value'];
array_push($json_data,$json_array);
}
您可以使用array(
...
[10] => array (
'user_address' => '26 Aorile Costo'
),
...
)
您也可以摆脱data[i].user_address
,只输出array_push
,这样您就不必在javascript中使用数组,并且可以简单地将其引用为$json_array
,因为数组转储现在看起来像:
data.user_address
答案 1 :(得分:0)
我找到了解决方案。 改为
$row=$db->prepare('select * from wp_usermeta');
到
$row=$db->prepare('select * from wp_usermeta where meta_key = "user_address"')
然后我改变了:
$json_array['meta_key']=$rec['meta_key'];
到
$json_array['meta_value']=$rec['meta_value'];
和data [i]变为data [i] .meta_value