2013-08-10 2 views
0

Я пытаюсь загрузить файл .js из плагина wp.Загрузить .js файл из плагина wordpress

код, где я загрузить 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 файл у меня есть следующий код, где функция пост() добавляется к кнопке формы OnClick = «пост();»:

$(document).ready(function() { 

     function post() { 

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


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

Еще ничего не происходит, когда я пытаюсь его на одной странице. Есть идеи?

ответ

1

Вы можете сделать это с помощью admin ajax: Я не буду объяснять функции. вы можете google и учиться.

Шаг 1: Локализуйте некоторые значения для вашего скрипта, которые будут использоваться в ваших файлах JavaScript,

прибудет админ-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 
}?> 
Смежные вопросы