【发布时间】:2016-06-16 14:48:49
【问题描述】:
我要做的是优化在我的 wp_postmeta 表中存储数据的方式。
我需要保存多个帖子之间的关系,我的开始情况是这样的:
add_post_meta($parent_id, 'post_child', $child_id);
这样我需要为每个关系使用一个数据库行。
考虑到同一个父级可以关联到多个子级,我试图弄清楚什么可能是一个好的数组配置,我得到了这样的东西(但我仍然不确定是最好的方法) :
array(
array(
parent => 121,
child => 122
),
array(
parent => 121,
child => 122
),
array(
parent => 121,
child => 123
),
...
);
然后,我尝试了以下代码:
if ($post_relations = get_post_meta($book_id, 'post_relations', true)) {
$post_relations[] = array("parent" => $parent_id, "child" => $child_id);
update_post_meta($book_id, 'post_relations', $post_relations);
} else {
$post_relations[] = array("parent" => $parent_id, "child" => $child_id);
add_post_meta($book_id, 'post_relations', $post_relations);
}
但我在 meta_value 字段中得到的结果似乎与我期望的结果不同:
a:2:{
i:0;a:2:{s:6:"parent";i:1;s:5:"child";i:510;}i:1;a:2:{s:6:"parent";i:510;s:5:"child";i:511;}
}
【问题讨论】:
-
您没有显示
update_post_meta或add_post_meta的代码,这似乎是有问题的功能。 -
我不明白你的意思,它们是 Wordpress 函数...我应该显示哪个代码?
-
抱歉,我不是 Wordpress 专家。我看了add_post_meta documentation。你似乎正确地调用它。您显示的结果似乎有一个 id 为 1 的父级和一个 id 为 510 的子级,然后是另一个 id 为 510 的父级和一个 id 为 511 的子级。也许您应该将您的预期结果添加到您的问题中?
-
我期望的结果是您可以在我的帖子中看到的第二个代码块的数组。顺便说一句,在阅读了您的评论后,我再次将我的预期结果与我在数据库中获得的数组进行了比较,我开始认为最终结果是正确的......现在我应该明白如果它也方便!
标签: php arrays wordpress post-meta