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 を使用して、このショートコードからダイアログを開きます。次に、ユーザーが簡単に編集できるように、一致するフィールドに値を入力する必要があります。

wordpress 関数 shortcode_atts() の一致する JavaScript バージョンが仕事をすると思いますか?!

助けてくれてありがとう!

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 で解析する必要があります。これには事前に作成されたソリューションはなく、ケースバイケースでゼロから構築する必要があります。

于 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 )

このメソッドは、ショートコードを識別するための RegExp を生成します。基本正規表現は、 にあるものと機能的に同等get_shortcode_regex()です。

wp.shortcode.regexp( tag )

このメソッドを使用すると、テキストからショートコード属性を解析できます。

wp.shortcode.attrs( text )

より多くのビューがあります。それについてはコアを参照してください。

于 2016-01-16T18:30:25.073 に答える