Repeatable custom meta fields

时间:2013-01-05 作者:Casper

我正在为WordPress的后端创建自定义元框。

我想添加一个包含多个字段的metabox,在我的例子中是一个图像上传和一个文本输入,但有一个按钮可以复制这两个字段。

我一直在跟踪this tutorial 而且效果很好。

但由于我想复制多个字段(如前所述,媒体上传器和文本输入),因此上述教程并不太适合。仅使用了1个输入文本。

现在,我找到了以下源代码,这在某种程度上符合我的愿望:

https://github.com/tammyhart/Reusable-Custom-WordPress-Meta-Boxes

这使得在一个可重复的字段stop中有多个case成为可能(这就是我想要的),只是代码太过广泛,并且位于PHP类中。现在,我想把这段代码加入到教程的代码中,只需尝试将这段代码用于彼此的多次试用。

现在我想知道是否有人能帮我解决这个问题。到目前为止,我已经尝试了很多事情和工作。

当我看到源代码时,我并不真的需要这段代码,而且会有更多的冗余。

我还尝试了可重复复制/粘贴的简单case,但出现了错误,包括某些变量不存在。(在我看来,这些都是曾经被宣布为无处可去的地狱……)

不幸的是,正如我所说,这些错误是:

Notice: Undefined variable: repeatable_fields in on line 117 
Warning: Invalid argument supp song for foreach () in   
  customers/0/d/a/xxx/httpd.www/wordpress/wp-includes/functions.php on
  line 2638 
Warning: array_filter () Expects parameter 1 to be array,
  null Given in /file/ on line 118 
Notice: Uninitialized string offset: 0 in on
  line 138
代码可在以下位置查看:http://snippi.com/s/xpwucxg

如何复制多个字段?

2 个回复
SO网友:cfx

多年来,我创建并管理了自己的自定义元字段,我可以告诉你,这一直是一个令人头痛的问题。我经常碰到像你这样的绊脚石,结果我的拳头撞到了墙上。我也曾在相当多的网站上工作过,这些网站充斥着插件,有时插件太多,让我对插件感到不快,我决定只在对项目绝对重要的时候使用它们。

我遇到的唯一可靠的插件是Advanced Custom Fields. 自从第一次尝试以来,我几乎在每个项目上都使用了它,它确实扩展了我所有项目的可能性。它真的很好地组织了字段,而且花了25美元,它们还有一个我非常熟悉的可重复字段附加组件。

给他们一次机会。

SO网友:Oterox

要添加可重复的字段,必须创建一个数组,例如使用文本输入:

array( // Repeatable & Sortable Text inputs
    \'label\' => \'Typical Day\', // <label>
    \'desc\'  => \'\', // description
    \'id\'    => $prefix.\'repeatable_typical_day\', // field id and name
    \'type\'  => \'repeatable\', // type of field
    \'repeatable_fields\' =>  array(
            array( // Text Input
                \'repeatable_label\'  => \'Title\', // <label>
                \'repeatable_desc\'   => \'\', // description
                \'repeatable_id\' => $prefix.\'program_act_title\', // field id and name
                \'repeatable_type\'   => \'text\' // type of field
            ),
            array( // Text Input
                \'repeatable_label\'  => \'Description\', // <label>
                \'repeatable_desc\'   => \'\', // description
                \'repeatable_id\' => $prefix.\'program_act_desc\', // field id and name
                \'repeatable_type\'   => \'text\' // type of field
            )

    )

)
通过这种方式,您可以添加图像、输入文本等。。。

-------编辑--------

Tammy已经更新了代码并修复了问题。最新版本有效。https://github.com/tammyhart/Reusable-Custom-WordPress-Meta-Boxes

结束