2016-10-05 48 views
0

我是新來的wordpress,並試圖創建一個簡單的調用,可以從ajax頁面調用。我知道如何用PHP做到這一點,但我無法用wordpress做到這一點。Ajax調用wordpress插件

<?php 
/* 
Plugin Name: Jed Plugin 
*/ 

function func_rate() 
{ 

    $data = wp_remote_retrieve_body (wp_remote_get("https://www.google.com/finance/converter?a=1&from=USD&to=ZAR")); 
    $pos = strpos($data,'class=bld>'); 
    echo substr($data,$pos+10,7); 

} 

add_action('get_value', 'func_rate'); 

我需要創建一個簡單的Ajax調用這個

$.ajax({ 
    url : "https://www.forexforecasts.co.za/wp-content/plugins/test/test.php", 
    type : 'post', 
    data : { 
     action : 'get_value' 
    }, 
    success : function(response) { 
     alert(response) 
    } 
}); 
+0

您應該閱讀[** codex **](https://codex.wordpress.org/AJAX_in_Plugins),Wordpress在對插件進行ajax請求時有非常具體的要求和方法。 – adeneo

回答

0

編輯:像adeneo在他的評論說。 WordPress的有建在HANDELING Ajax請求的方法,只要改變你的行動:

add_action('wp_ajax_get_value', 'func_rate'); //for loged in users 
add_action('wp_ajax_nopriv_get_value', 'func_rate'); //for guests 

而且在功能func_rate代碼的結束()添加wp_die();以防止WP在ajax請求完成後運行。

最後,將您的ajax請求中的網址更改爲ajaxurl。這個變量應該由WP預定義。

+0

我看到你在說什麼,但我需要從外部網站撥打電話,而不是來自實際的WP網站。那麼如何使用預定義的ajax url – Jed

+0

我沒有測試過這個。但您可以嘗試從外部網站執行{destenation_domain} /wp_admin/admin-ajax.php的請求。不要忘記添加標題('Access-Control-Allow-Origin:{source_domain}');到目的地網站。 –