如何在 wordpress 选项中保存简码的内容?
Posted
技术标签:
【中文标题】如何在 wordpress 选项中保存简码的内容?【英文标题】:How to save the content of shortcode in wordpress options? 【发布时间】:2015-05-15 04:46:49 【问题描述】:我正在使用 Wordpress 开发一个插件。但是我需要保存一个像 [my-shortcode] 这样的短代码,然后在我的前端显示短代码的最终结果。想象一下,我有一个表单,您可以在其中上传图像,选择宽度、高度和预加载的主题、动画等。但我想使用短代码。
如何使用 do_shortcode()
使用 Wordpress 选项保存已编译的短代码?
我想,也许我可以用 javascript 来做,但我没有在网上找到它。
【问题讨论】:
【参考方案1】:您无法使用do_shortcode()
保存短代码。 do_shortcode()
用于呈现简码。
您可以使用呈现输入的metabox
,然后您可以使用以该输入为目标的JavaScript 代码并将您的shortcode
存储在其value attribute
中。
然后,您可以使用 WordPress 提供的 get_post_meta();
方法引用包含您的简码的 post meta data
。
这是get_post_meta
http://codex.wordpress.org/Function_Reference/get_post_meta的链接
您可以在此处参考如何在 WordPress 中添加元框: http://codex.wordpress.org/Function_Reference/add_meta_box
你的输入标签应该在你的回调函数中这样编码:
echo '<input type="hidden" id="My-Shortcode" name="My-Shortcode" ' . get_post_meta($post->ID, 'My-Shortcode', true) . '/>';
名称为My-Shortcode
的输入实际上将保存您的简码,但正如您所见,它需要一个$post object
,它实际上保存了该帖子的所有数据。然后,您可以通过说明
get_post_meta($post->ID, 'My-Shortcode', true)
True
仅表示该值将被回显。
现在,为了访问 $post object
中的任何数据,您需要将 $post 参数传递给您的函数。通常,WordPress 允许您访问该 $post object
,但您需要在元框回调函数中声明,如下所示:
function My_callback_function( $post )
// your input will be here
然后您可以在前端再次调用 get_post_meta,如下所示:
echo get_post_meta($post->ID, 'My-Shortcode', true)
请记住,在将数据保存到 WordPress 数据库和从 WordPress 数据库保存数据时存在安全问题,这就是您希望使用 WordPress 的 nonce 系统的原因。这是链接。调查了解更多:http://codex.wordpress.org/WordPress_Nonces
【讨论】:
以上是关于如何在 wordpress 选项中保存简码的内容?的主要内容,如果未能解决你的问题,请参考以下文章