使用Javascript提取WordPress短码字符串

使用Javascript提取WordPress短码字符串,javascript,wordpress,shortcode,Javascript,Wordpress,Shortcode,有人知道用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将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]
或者像这样:

[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]
我试图找到一个图书馆或一些工作正则表达式,但找不到

情况:

我allready开发了一个短代码生成器,它根据用户在输入字段中插入的值生成短代码。现在我要的是这样:

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

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


谢谢你的帮助

我要做的是在短代码中打印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;
}
add_shortcode('buttons','js_vars_so_19604963');
函数js_vars_so_19604963($atts,$content=null,$shortcode)
{
$output='此处正常shorcode工作';
$output.='
var sc_按钮_color=“”.$atts['color']”;
';
返回$output;
}
然后,在JavaScript中访问它们:
console.log(sc\u按钮颜色)


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


要知道用户在内容框中选择了什么,我们需要。必须使用正则表达式解析此
getContent
,以提取精确的短代码及其属性。没有预先制定的解决方案,您必须从头开始,逐案构建。

WordPress在
wp
对象上有一个名为
shortcode
的新对象。它是一个用于生成wp.shortcode Javascript对象的构造函数。你可以用它的方法做各种事情。我认为最好是,它的评论很好,并且实现了一些方法

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

wp.shortcode.replace( tag, text, callback )
当您需要从字符串中提取短代码以便在其他地方处理并保留对它们的引用时,此方法非常有用

wp.shortcode.next( tag, text, index )
此方法生成一个RegExp来标识短代码。基本正则表达式在功能上等同于
get\u shortcode\u regex()
中的正则表达式

通过这些方法,您可以从文本中解析短代码属性

wp.shortcode.attrs( text )

还有一个视图,请参见核心部分。

我认为正则表达式不适用于此。为什么要使用JavaScript?你不应该使用Wordpress短代码API吗?情况是,我希望用户能够用鼠标在wordpress编辑器中选择一个短代码。当用户选择此短代码并按下“编辑短代码”按钮时,我想打开此特殊短代码的模式对话框,并在输入字段中填充短代码中的值,以便用户可以编辑它们。这是相反的方式。不从输入字段生成短代码,而是使用javascript将短代码参数重新插入短代码生成器输入字段。这就是为什么我需要使用javascript而不是php函数的原因,因为php运行已经准备好了。@有一方面,您找到了解决方案吗?我想在屏幕上给一个短代码上色(就像一个代码编辑器),这似乎是我想法的开始。谢谢。当然,我们随时可以尝试;)请再次阅读我在顶部的帖子,我添加了一些必要的额外信息。谢谢@一方面,我已经添加了你想要的信息。嗨,谢谢你的帮助。问题不在于获取所选内容。。。。问题是从所选字符串中获取短代码属性,而不是获取字符串本身。。。我知道没有预先制定的解决方案,但这就是为什么我在这里问。也许有人allready对此或类似的问题有解决方案?