2011-02-17 10 views
2

這是文件位置,不是腳本或功能的問題。我做了一個WordPress主題,並想通過jQuery調用一個彈出式聯繫表單,如果表單經過驗證,我的js文件將調用一個php文件來發送電子郵件。WordPress的:如果我想從JavaScript文件調用它,我的PHP腳本放在哪裏?

下面是文件/文件夾結構:

wp_theme_root 
| 
js/popup_form.js 
| 
mailer.php 

我只是想知道我應該把mailer.php形式,我試圖把它放在同一目錄下的js文件或主題的根或在wordpress目錄中,但都不成功。

感謝您的幫助。

+0

嗨。我正在尋找完全相同的答案。我嘗試了鉤子,但不知道它是如何工作的。我打電話給一個js文件,並想運行一個php文件。 php文件位於主題文件夾中。 – noobcode 2011-03-23 09:38:03

回答

0

試着把它放在WordPress目錄的根目錄下,然後像這樣調用它:/js/popup_form.js。請注意前面的/,如果您不知道它意味着從根開始。

希望這對你有用。

1

如果它是您正在構建的主題的一部分,則需要將其放置在主題內的主題文件夾或包含文件夾中。您可以使用get_bloginfo()方法訪問它: http://codex.wordpress.org/Function_Reference/get_bloginfo#Template_Directory

但請記住,當您直接調用文件時,不能調用wordpress函數。如果你的郵件功能只是發送郵件而不依賴於WP,那麼你應該沒問題。否則,您需要將其掛接到WP。

一種方法,我一直用的是有這段代碼中的functions.php

add_action('wp', 'check_ajax'); //run this method for every call 
function check_ajax() { 
    if (isset($_GET["is_ajax_request"])) { 
     get_template_part('includes/axax_calls'); die(); 
    } 
} 

然後,我有一個名爲主題文件夾中包含內部ajax_calls文件。這個方法也會處理堆棧中WP所有的ajax調用。確保在所有的ajax請求中都有'is_ajax_request'。

0

最簡單的方法是編寫處理郵件發送的代碼作爲插件。 這將有自己的自包含MVC組件(大部分然後只是空的)。

我唯一能找到的現有示例是JSON-API。它有點大但更簡單。

相關問題