1

有谁知道使用 Javascript 或 jQuery 从 WordPress 短代码字符串中提取参数和内容到 Javascript 数组或变量中的方法?

像这样的简码:

[button url="http://...." color="#00000"]Contact me![/button]

或像这样:

[tabs]

  [tab title="Title 1"]Content Tab 1[/tab]

  [tab title="Title 2"]Content Tab 2[/tab]

[/tabs]

我试图找到一个库或一些有效的正则表达式,但我找不到一些。

情况:

我已经开发了一个简码生成器,它根据用户在输入字段中插入的值生成简码。现在我想要相反的方式:

用户在编辑器中选择一个简码并按下“使用生成器编辑”按钮,然后 javascript 从简码中获取参数。之后,它使用 jquery-ui 从这个简码打开对话框。然后它应该将匹配字段中的值填充到对话框中,以便用户可以轻松地编辑它们。

我认为匹配的 javascript 版本的 wordpress 函数 shortcode_atts() 可以完成这项工作?!

谢谢你的帮助!

4

2 回答 2

2

我要做的是在简码中打印 JS 变量:

add_shortcode( 'buttons', 'js_vars_so_19604963' );

function js_vars_so_19604963( $atts, $content = null, $shortcode ) 
{
    $output = 'Normal shorcode work here';

    $output .= '<script type="text/javascript">
        var sc_button_color = "' . $atts['color']. '";
        </script>';

    return $output;
}

然后,在 JavaScript 中访问它们:console.log(sc_button_color).


用户在编辑器中选择一个简码并按下“使用生成器编辑”按钮,然后 javascript 从简码中获取参数。

要知道用户在我们需要的内容框中选择了什么tinyMCE.activeEditor.selection.getContent。这getContent必须用 RegEx 解析以提取确切的 Shortcode 及其属性。对此没有预先制定的解决方案,您必须逐个从头开始构建它。

于 2013-10-26T09:42:31.540 回答
1

WordPress 在对象上有一个wp名为shortcode. 它是用于制作 wp.shortcode Javascript 对象的构造函数。你可以使用它的方法来做各种各样的事情。我认为最好检查 WordPress core 中的实现,它有很好的评论并实现了一些方法。

此方法允许您处理字符串中的短代码,通过使用回调函数替换它们。

wp.shortcode.replace( tag, text, callback )

当您需要从字符串中获取短代码以在其他地方处理并保留对它们的引用时,此方法很有用。

wp.shortcode.next( tag, text, index )

此方法生成一个正则表达式来识别短代码。基本正则表达式在功能上等同于get_shortcode_regex().

wp.shortcode.regexp( tag )

这个方法让你从文本中解析短代码属性。

wp.shortcode.attrs( text )

还有更多的观点,请参阅核心。

于 2016-01-16T18:30:25.073 回答