it-swarm-eu.dev

Úprava souboru JS s daty z nastavení pluginu

Mám plugin, který má mimo jiné soubor JavaScript, který vyžaduje několik uživatelsky specifických nastavení. Jaký je nejlepší způsob, jak tyto parametry do javascriptu získat z parametrů nastavení pluginu?

Jinými slovy, pokud nastavím část nastavení na stránku nastavení, do které je uživatel může zadávat, jak nejlépe mohu tyto hodnoty získat do javascriptu? Musel bych použít něco, abych připojil některé tagy skriptu a nastavil je pomocí PHP na každé načtení stránky? Bylo by nastavení souboru cookie lepším způsobem, jak to udělat?

8
Ryan Elkins

lepší je použít funkce WP pro tento příklad, například pro vícejazyčnost:

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

použijte tento soubor v souboru 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 );

});

Viz také příspěvek od Otta

9
bueltge

Existuje několik způsobů, jak to udělat, z nichž jeden jsem udělal dříve, druhý jsem ještě nepoužíval, ale používal jsem konfigurační soubory XML.

První z nich je zahrnout proměnné do tagu skriptu do záhlaví nebo zápatí WP před tagem skriptu, do kterého zahrnete soubor JS, například:

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

Druhou alternativou by bylo zahrnout JS do souboru PHP, který je obsažen uvnitř tagu skriptu.

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

Uvnitř tohoto souboru byste zahrnuli váš javascript, a protože PHP by ho analyzovalo, bylo by možné zahrnout PHP hovory podobným způsobem, jak je uvedeno výše, jednoduše ozvěnou dat/možností, které budete potřebovat. Je třeba poznamenat, že možná budete muset nastavit záhlaví pro výstup jako text/javascript.

Osobně jsem mnohem raději první metodu a je to to, co používám, když mám uživatelsky měnitelná nastavení, která ovlivňují soubory javascriptu.

1
nobody