如何在 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_metahttp://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 选项中保存简码的内容?的主要内容,如果未能解决你的问题,请参考以下文章

详解WordPress中简码格式标签编写的基本方法

如何在wordpress中递归解码简码

如何在非 wordpress 页面中调用简码?

WordPress Shortcode(简码)介绍及使用详解

如何在 WordPress 简码中使用 AJAX?

如何从 Wordpress 页面/帖子中获取所有标签作为简码列表?