it-swarm.asia

تعديل ملف JS مع البيانات من إعدادات البرنامج المساعد

لدي مكون إضافي ، من بين أشياء أخرى ، يحتوي على ملف javascript يتطلب بعض إعدادات المستخدم المحددة. ما هي أفضل طريقة للحصول على هذه الإعدادات في javascript من معلمات إعدادات المكون الإضافي؟

بمعنى آخر ، إذا جعلت هذه الإعدادات جزءًا من صفحة الإعدادات حيث يمكن للمستخدم إدخالها ، فكيف سأتمكن من الحصول على هذه القيم في javascript على أفضل وجه؟ هل يجب علي استخدام شيء لإلحاق بعض علامات النص البرمجي وتعيينها عبر PHP على كل صفحة يتم تحميلها؟ هل سيكون إعداد ملف تعريف ارتباط طريقة أفضل للقيام بذلك؟

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

هناك طريقتان يمكنك القيام بهما ، أحدهما قمت به من قبل ، والطريقة الأخرى التي لم أقم بها ، لكنني استخدمت ملفات تكوين XML.

أول واحد هو تضمين المتغيرات في علامة البرنامج النصي داخل WP رأس أو تذييل الصفحة ، قبل علامة البرنامج النصي حيث يمكنك تضمين ملف JS الخاص بك ، على سبيل المثال:

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

البديل الآخر هو تضمين JS داخل ملف PHP والذي يتم تضمينه داخل علامة البرنامج النصي.

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

داخل هذا الملف ، ستقوم بتضمين javascript الخاص بك ، وبما أن PHP ستقوم بتحليله ، ستتمكن من تضمين PHP مكالمات بطريقة مماثلة لما ورد أعلاه ، ببساطة تكرار البيانات/الخيارات التي انت تحتاج شيء واحد تجدر الإشارة إليه هو أنك قد تحتاج إلى تعيين رؤوس للإخراج كـ text/javascript.

أنا شخصياً أفضل الطريقة الأولى ، وهي ما أستخدمه عندما يكون لدي إعدادات قابلة للتغيير للمستخدم والتي تؤثر على ملفات جافا سكريبت.

1
nobody