【问题标题】:How to save the content of shortcode in wordpress options?如何在 wordpress 选项中保存简码的内容?
【发布时间】:2015-05-15 04:46:49
【问题描述】:

我正在使用 Wordpress 开发一个插件。但是我需要保存一个像 [my-shortcode] 这样的短代码,然后在我的前端显示短代码的最终结果。想象一下,我有一个表单,您可以在其中上传图像,选择宽度、高度和预加载的主题、动画等。但我想使用短代码。

如何使用 do_shortcode() 使用 Wordpress 选项保存已编译的短代码?

我想,也许我可以用 javascript 来做,但我没有在网上找到它。

【问题讨论】:

    标签: php jquery wordpress plugins


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多