0

wp プラグインから .js ファイルを読み込もうとしています。

jquery、jquery-UI、および .js ファイルをロードするコードは次のようになり、「メイン」プラグイン ファイル内に配置されます。

//Load Java and Jquery
function load_jquery() {

    // only use this method is we're not in wp-admin
    if (!is_admin()) {

        // deregister the original version of jQuery
        wp_deregister_script('jquery');
        wp_deregister_script('jquery-ui');
        wp_deregister_script('lyox-script');

        // discover the correct protocol to use
        $protocol='http:';
        if($_SERVER['HTTPS']=='on') {
            $protocol='https:';
        }

        // register the Google CDN version
        wp_register_script('jquery', $protocol.'//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', false, '1.10.2');
        wp_register_script('jquery-ui', $protocol.'//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js', false, '1.10.3');
        wp_register_script('lyox-script', plugins_url( '/includes/script.js' , __FILE__ ), array( 'jquery', 'jquery-ui' ) );

        // add it back into the queue
        wp_enqueue_script('jquery');
        wp_enqueue_script('jquery-ui');
        wp_enqueue_script('lyox-script');


    }

}

add_action('template_redirect', 'load_jquery');

次に、.js ファイル内に次のコードがあり、post() 関数がフォーム ボタン onclick="post();" に追加されます。

$(document).ready(function() {

        function post() {

        var name = $('#name').val();


             $.post('process.php', {postname:name},
                    function(data)
                        {
                        alert(data);
                        $('#result').html(data);                        
             });
    }
});

ページで試してみても、まだ何も起こりません。何か案は?

4

1 に答える 1

1

これは admin ajax を使用して行うことができます。機能については説明しません。あなたはそれをググって学ぶことができます。

ステップ 1: JavaScript ファイルで使用するスクリプトの値をローカライズします。

admin-ajax.php の URL を取得する

$author_nonce = wp_create_nonce( 'nk_author' );


    wp_localize_script( 'nk_script', 'nk_object',array( 'nk_ajax_url' => admin_url( 'admin-ajax.php' ) , 'nk_plugin_url' => plugins_url() ,'nk_author' => $author_nonce) );

ステップ 2:スクリプトでこれを行うことができます。

var data = {
        action: 'nk_action', // the function that will be called in your plugin
        _ajax_nonce :   nk_object.nk_author, // nonce for security
        id : 'mydata'   //your data to be sent
        };

            //(admin ajax url , your data , callback for response )
        jQuery.post(nk_object.nk_ajax_url, data, function(response) {

               $('#nk_result').html(response);


            }


        });//end jQuery.post

ステップ 3 : plugin.php ファイルでこれを行います

<?php
add_action('wp_ajax_nk_action', 'nk_action_callback');


function nk_action_callback() {
    check_ajax_referer('nk_author');

    if(isset($_POST['id']))
    {
        $id=$_POST['id'];
            echo $id;
    }
die();//dont forget to write die
}?>
于 2013-08-31T10:16:21.543 に答える