是否停止截断自定义文本字段中的快捷代码?

时间:2016-01-19 作者:Jo G

我有一个第三方为我开发的自定义主题,我正试图找出短代码问题的根源。我对Wordpress和PHP还比较陌生,所以如果我能提供任何其他信息,请告诉我。

我在自定义文本字段中输入产品价格。我正在使用“按国家/地区自定义内容”插件,以便在这些字段中显示特定于地区的价格。该插件使用一个短代码指定每个国家应显示的价格。例如:

[CBC country="gb" show="y"]£10[/CBC][CBC country=“us” show=“y”]$15[/CBC]
我想出了如何使用do_shortcode 在我的模板中运行函数,以实际获得运行的快捷码,如下所示:

<?php echo do_shortcode( get_post_meta($post->ID, \'fl_prodbuy1price\', true) );?>
这在我第一次发表这篇文章时效果很好。我的问题是,一旦我在Wordpress UI中单击发布/更新,Wordpress就会截断字段的显示内容-始终在第一个等号(=)处:

[CBC country=
因此,如果我返回并编辑帖子并进行更新,除非我记得重新输入完整的快捷码,否则它会以值[CBC country= 为了价格。

这个问题对任何人都有影响吗?如果有人建议我应该把调查重点放在哪里,我将不胜感激。

1 个回复
SO网友:Jo G

@米洛和@Howdy\\u McGee找到了答案。

我在函数中找到了需要修改的部分。php文件:

case \'text\':
echo \'<input type="text" name="\', $field[\'id\'], \'" id="\', $field[\'id\'], \'" 
value="\', $meta ? $meta : $field[\'std\'], \'" size="30" style="width:97%" />\',
值字段被截断,因此我按照建议通过esc\\u attr()传递了它:

case \'text\':
echo \'<input type="text" name="\', $field[\'id\'], \'" id="\', $field[\'id\'], \'" 
value="\', esc_attr($meta ? $meta : $field[\'std\']), \'" size="30"   style="width:97%" />\',
问题已解决。

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\