it-swarm-id.com

Memodifikasi file JS dengan data dari pengaturan plugin

Saya memiliki plugin yang, antara lain, memiliki file javascript yang memerlukan beberapa pengaturan spesifik pengguna. Apa cara terbaik untuk memasukkan pengaturan tersebut ke javascript dari parameter pengaturan plugin?

Dengan kata lain, jika saya menjadikan pengaturan itu bagian dari halaman pengaturan di mana pengguna dapat memasukkannya, bagaimana saya bisa mendapatkan nilai-nilai itu ke dalam javascript? Apakah saya harus menggunakan sesuatu untuk menambahkan beberapa tag skrip dan mengaturnya melalui PHP pada setiap pemuatan halaman? Apakah pengaturan cookie menjadi cara yang lebih baik untuk melakukan ini?

8
Ryan Elkins

lebih baik adalah, Anda menggunakan fungsi WP untuk ini, contoh untuk multi bahasa

    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;
    }

gunakan ini dalam file 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 );

});

Lihat juga pos dari Otto

9
bueltge

Ada beberapa cara yang bisa Anda lakukan ini, salah satunya yang pernah saya lakukan sebelumnya, yang lain belum, tapi saya sudah gunakan untuk file konfigurasi XML.

Yang pertama adalah memasukkan variabel dalam tag skrip di dalam header atau footer WP, sebelum tag skrip tempat Anda memasukkan file JS Anda, misalnya:

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

Alternatif lain adalah memasukkan JS di dalam file PHP yang disertakan di dalam tag skrip.

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

Di dalam file ini Anda akan memasukkan javascript Anda, dan sebagai PHP akan menguraikannya Anda akan dapat memasukkan panggilan PHP dengan cara yang sama seperti di atas, cukup menggema data/pilihan kamu membutuhkan. Satu hal yang perlu diperhatikan adalah Anda mungkin perlu mengatur header untuk output sebagai text/javascript.

Secara pribadi saya lebih suka metode pertama, dan apa yang saya gunakan ketika saya memiliki pengaturan pengguna yang dapat berubah yang mempengaruhi file javascript.

1
nobody