使用多维数组存储元字段多次还是只存储一次?

时间:2012-08-28 作者:Foxinni

我得到了一些选项,可以使用repeater类型字段进行扩展。我为每个字段保存的值已经是一个数组,所以本质上我是为每个选项保存多维数组。(参见每周交易时间选取器http://foxinni.com/screens/trading_hours-20120828-162304.png)

My question is this: 将元值作为双序列化值存储在一个元字段中更好,还是将它们拆分为一维值,但在db中存储为多个同名自定义字段更好?

我问这个问题的原因是因为只管理一个自定义字段更容易,而且正如我发现的那样,管理重复的元字段ID有点困难。在imo.中,检查旧值以验证正确的字段很麻烦

1 个回复
SO网友:Foxinni

我想我会把元数据保存在数据库的多个字段上,因为我一直在分配pre_get_post 查询筛选。其中的一些功能用于搜索/过滤post元数据,如果我开始将值保存为双序列化值,会不会让事情变得非常困难。如果我想在不久的将来保存单一的、更简单的价值观,那么这是一个好习惯。

为了解决我遇到的一些问题。。。我选择了NOT 使用update_post_meta() 保存时,只需先删除所有值,然后直接添加即可。先检查旧值,然后再检查新值,然后对其执行操作,这变得太复杂了。可能不是最好的做法。

if(isset($_POST[$field[\'id\']])) {
    $new = $_POST[$field[\'id\']];
}

//Store repeater fields as one dimentional array with same key meta fields
if(is_array($new) && isset($new[0])){

    //DELETE EVERYTHING FIRST
    delete_post_meta($post_id, $field[\'id\']);   

    foreach ($new as $key => $value) {
        add_post_meta($post_id, $field[\'id\'], $value);  
    }

}

结束

相关推荐

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

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