如何为数组值放置句点和空格(元键)

时间:2011-11-16 作者:mmaximalist

Problem:

在我创建元框之前,我用传统的方式直接输入自定义字段。我手动填写ID和值,然后点击“更新按钮”。我想输入什么就输入什么,spaces. (句点),它们将正确应用于我的数据库(无错误)。然而,我不再想手动执行此操作,这就是为什么我创建了元框,但自从我开始使用它们以来,特殊字符如.spaces 当我试图更新帖子以保存元框值时,将导致一个空白字段。当您手动输入ID而不是通过元框预设ID时,我缺少什么?为什么特殊字符的规则不同。最终,如何创建具有特殊字符的元框数组ID?

注意:我的所有非特殊字符元框功能正常。所以问题不在于代码的功能

Details:

我正在使用mp3播放器插件“mp3 jplayer”,它使用自定义字段来显示音频。自定义字段格式(此插件的创建者确定,我无法更改自己)是。。。

ID=曲目编号mp3。艺术家

(note 上面的空格和句点,这是导致提交metabox值失败的原因)

值=SongTitle@SongURL

enter image description here

目前,我正在使用元框输入自定义字段,如下所示:

$meta_boxes[] = array(
\'id\' => \'musicboxes\',
\'title\' => \'Music Box Head\',
\'pages\' => array(\'post\'),
\'context\' => \'normal\',
\'priority\' => \'low\',

\'fields\' => array(
array(
        \'name\' => \'Musicbox 1\',
        \'desc\' => \'ID\',
        \'id\' => \'1 mp3.Artist\',
        \'type\' => \'text\',
        \'std\' => \'\',
    )
)
);
然而,当我在数组ID字段“1 mp3.Artist”中输入时,自定义字段没有正确更新(换句话说,保持为空),我想这是因为数字和单词“mp3”之间有一个空格。那么,我如何(如果可能的话)仍然能够保留空间,以便自定义字段可以与mp3 jplayer插件一起正常工作。

3 个回复
SO网友:fuxia

您可能构建了错误的元框:如果自定义字段名不是有效的变量名PHP will convert 所有字符不匹配[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff] 至下划线。原因:register\\u globals。请求字段必须能够作为变量使用。

有两种解决方法:

将字段命名为数组:<input name="foo[TrackNumber mp3.Artist]">. 然后只需解析foo 获取值。这就是WordPress对自定义字段框所做的。

搜索TrackNumber_mp3_Artist 并在将值保存到数据库之前对其进行转换。

SO网友:Kayo

在保存到数据库之前,您是否尝试过转义文本?

esc_textarea

$mp3ID = esc_textarea($_REQUEST[\'_mp3IDBoxData\']);
update_post_meta(esc_attr($post_id), \'_mp3IDBoxData\', $mp3ID);

SO网友:cr0z3r

如果你还在寻找答案;我想你得把手弄脏。首先,需要修剪在自定义字段(“1 mp3.Artist”)中注册的值。

例如:$id=修剪($field[\'id\')$newID=get\\u post\\u meta($post->ID,$ID,true);

希望这有帮助。我还没有测试它,但它背后的逻辑应该会起作用。祝你好运

结束

相关推荐

featured image metabox MU

我有一个MU安装,我的主站点(site.com)的管理员显示了特色图片元框,但子站(site.com/blog1)的管理员F.I.M.B.在屏幕选项选项卡中没有显示或可用。。这些网站运行相同的主题和设置。这两个站点都运行(相同的)子主题add_theme_support(\'post-thumbnails\');在父主题(框架)中定义。就像add_theme_support(\'post-thumbnails\'); 仅对我的网络中的主站点有效。。这是一个已知的问题,还是应该开始挖掘mu设置中的bug?