2013-03-27 62 views
4

我寫了一個wordpress插件女巫追加一些評論功能在我的模板。通過ajax,所有的東西都應該傳輸到wordpress數據庫中。WordPress的:通過ajax調用插件的PHP文件

的問題是 - ajax的處理程序通過

if(isset($_POST['name'], $_POST['title'], $_POST['description'])) { 

// do something with wordpress actions, e.g. get_current_user, $wpdb 

} 

需要與捕獲的PHP文件查詢在用戶發送AJAX處理程序將調用PHP文件中像這樣的查詢時間:

$('#ajax_form').bind('submit', function() { 
    var form = $('#ajax_form'); 
    var data = form.serialize(); 
    $.post('../wp-content/plugins/test/getvars.php', data, function(response) { 
     alert(response);   
    }); 
    return false; 

getvars.php不知道wordpress環境,因爲它直接從用戶提交中調用,我認爲要添加wordpress環境類並且包含不是很好的樣式。

有沒有其他辦法?感謝你的支持。

回答

8

是使用內置的WordPress的AJAX操作:

您jQuery將是這樣的:

$('#ajax_form').bind('submit', function() { 
    var form = $('#ajax_form'); 
    var data = form.serialize(); 
    data.action = 'MyPlugin_GetVars' 
    $.post('/wp-admin/admin-ajax.php', data, function(response) { 
     alert(response);   
    }); 
return false; 

你的插件代碼是這樣的:

add_action("wp_ajax_MyPlugin_GetVars", "MyPlugin_GetVars"); 
add_action("wp_ajax_nopriv_MyPlugin_GetVars", "MyPlugin_GetVars"); 

function MyPlugin_GetVars(){ 
    global $wpdb; 
    // use $wpdb to do your inserting 

    //Do your ajax stuff here 
    // You could do include('/wp-content/plugins/test/getvars.php') but you should 
    // just avoid that and move the code into this function 
} 
+0

......這就是我想要的。謝謝。 – creality 2013-03-28 09:49:24

+0

很高興看到這一點。如果它適用於您,請勾選綠色複選標記並選擇答案。 – 2013-03-28 13:38:57

+0

我在哪裏放置jQuery功能? – 2014-01-27 17:32:33