您无法使用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