在WordPress中使用自定义Meta框不能保存下拉菜单

时间:2012-02-06 作者:Dan Whiteside

我在WordPress中玩自定义元框,当我试图修改下拉菜单并保存选项时,它不会保存。

如果我使用默认模板,它会很好地保存选项。

case \'select\':
echo \'<select name="\', $field[\'id\'], \'" id="\', $field[\'id\'], \'">\';
foreach ($field[\'options\'] as $option) {
echo \'<option value="\', $option[\'value\'], \'"\', $meta == $option[\'value\'] ? \' selected="selected"\' : \'\', \'>\', $option[\'name\'], \'</option>\';
}
echo \'</select>\';
break;
以下是我的修改版本,允许显示3个下拉菜单:

case \'champbans\':
echo \'<select name="\', $field[\'id\'], \'_team1ban_1" id="\', $field[\'id\'], \'_team1ban_1">\';
foreach ($field[\'options\'] as $option1) {
echo \'<option value="\', $option1[\'value\'], \'_team1ban_1"\', $meta == $option1[\'value\'] ? \' selected="selected"\' : \'\', \'>\', $option1[\'name\'],  \'</option>\';
}
echo \'</select>\';
echo \'<select name="\', $field[\'id\'], \'_team1ban_2" id="\', $field[\'id\'], \'_team1ban_2">\';
foreach ($field[\'options\'] as $option2) {
echo \'<option value="\', $option2[\'value\'], \'_team1ban_2"\', $meta == $option2[\'value\'] ? \' selected="selected"\' : \'\', \'>\', $option2[\'name\'], \'</option>\';
}
echo \'</select>\';
echo \'<select name="\', $field[\'id\'], \'_team1_3" id="\', $field[\'id\'], \'_team1_3">\';
foreach ($field[\'options\'] as $option3) {
echo \'<option value="\', $option3[\'value\'], \'_team1ban_3"\', $meta == $option3[\'value\'] ? \' selected="selected"\' : \'\', \'>\', $option3[\'name\'], \'</option>\';
}
echo \'</select>\';
break;
没有显示任何错误,在花了2个小时查看后,我无法发现错误。非常感谢您的帮助或指导。

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

Dan,问题是当你保存帖子元时,它使用的名称与你添加的名称不同\'_team1ban_1 等等,但您链接到的代码查找名为$fields[\'id\'].

如果您想使用链接框架,我建议您将它们作为单独的字段添加。(即三个独立的select 方框)。如何做到这一点不在本网站的范围之内,但快速查看一下pastie,似乎您需要向fields (例如,请参见第43行)。

结束

相关推荐

你能让一个定制的metabox域成为保存新帖子的必填项吗?

我正在处理一个自定义的帖子类型,我删除了所有标准的wordpress表单项,并从零开始使用自定义的元框,除了标题字段。在我的情况下,选择一些自定义元下拉选择非常重要。是否有一个简单的解决方案,让他们在发布项目之前必须选择一些项目?我认为javascript是最简单的解决方案,但最好让用户知道发生了什么,比如如果他们试图发布但尚未选中,则突出显示框,另一个问题是下拉菜单,默认情况下,即使他们没有选择一个值,也已经选择了一个值