web-dev-qa-db-ja.com

プラグイン設定からのデータでJSファイルを修正する

私は、とりわけ、いくつかのユーザー固有の設定を必要とするJavaScriptファイルを持っているプラ​​グインを持っています。プラグインの設定パラメータからこれらの設定をJavaScriptに取り込むための最善の方法は何でしょうか。

つまり、これらの設定をユーザーが入力できる設定ページの一部にした場合、これらの値をどのようにしてjavascriptに取り込むことができるのでしょうか。ページを読み込むたびに、スクリプトタグを追加してPHPで設定するために何か使用する必要がありますか。これを行うには、Cookieを設定するのがより良い方法でしょうか。

8
Ryan Elkins

もっといいのは、このためにWPの関数を使用することです。これは多言語の例です。

    add_action( 'admin_enqueue_scripts', 'add_scripts' );
    function add_scripts($where) {
        wp_localize_script( 'post2media', 'post2media_strings', $this->localize_vars() );
    }
    function localize_vars() {

        $strings = array(
                'btntext'    => __( 'Link with post', INPSYDE_P2M_TEXTDOMAIN ),
                'txtallnone' => __( 'Include in gallery:', INPSYDE_P2M_TEXTDOMAIN ),
                'txtall'     => __( 'All', INPSYDE_P2M_TEXTDOMAIN ),
                'txtnone'    => __( 'None', INPSYDE_P2M_TEXTDOMAIN ),
                'ttlcb'      => __( 'Include image in this gallery', INPSYDE_P2M_TEXTDOMAIN )
            );

        return $strings;
    }

jsファイルでこれを使用します。

jQuery(function ($) {
buttonaddfunc = function() {
    btntext = post2media_strings.btntext;

    reg = /\d+/;
    $( '.savesend > .button' ) . each( function() {
        inputname = $( this ) . attr( 'name' );
        number = reg . exec( inputname );
        $( this ) . after( '<input type="submit" value="' + btntext + '" name="link[' + number + ']" class="button">' );
    } );
    $( '.describe-toggle-on' ).unbind( 'click', buttonaddfunc );
};
$( '.describe-toggle-on' ).bind( 'click', buttonaddfunc );

;));

Ottoの 投稿も参照してください

9
bueltge

これを行うにはいくつかの方法があります。そのうちの1つは私が以前に行ったことで、もう1つは私が行ったことはありませんが、私はXML構成ファイルに使用しました。

最初の方法は、JSファイルを含むスクリプトタグの前に、WPヘッダーまたはフッター内のスクリプトタグに変数を含めることです。次に例を示します。

<script type="text/javascript">
    var test = "<?php echo "hello world"; /* the relevant PHP code to echo the data you require */ ?>";
    var slider_type = "<?php echo "nivo"; /* same again */ ?>";
</script>
<script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/your_js_here"></script>

もう1つの方法は、scriptタグの中に含まれているPHPファイルの中にJSを含めることです。

<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/javascripts.php"></script>

このファイルの中にあなたのjavascriptを含めるでしょう。そしてPHPがそれを解析するのであなたは上記と同じようにPHP呼び出しを含めることができます。必要です。注意すべきことの1つは、出力用のヘッダーをtext/javascriptとして設定する必要があるかもしれないということです。

個人的には私は最初の方法を好むし、私がJavaScriptファイルに影響を与えるユーザーが変更可能な設定をしているとき私が使うものです。

1
nobody