2012-03-05 37 views
0

我爲Wordpress主題中的自定義表單開發了一個php mail()函數。這只是一個正常的表單,它被提交給自己(具有空的action屬性)。在functions.php中,我包含inc\mail.php,它檢查POST數據是否存在,如果存在,它將運行該函數。最後,該函數通過php的mail()發送一封電子郵件,並返回true。爲什麼Wordpress會在一個模板中提交POST表單時提交404錯誤,但在另一個模板中卻不會提交?

這適用於具有自定義帖子類型(不是「發佈」或「頁面」)的單個帖子,但是當我嘗試在普通WordPress「頁面」上使用相同的腳本時,它運行以及(發送電子郵件),但它會引發404錯誤。瀏覽器地址欄中的URL保持不變(顯示頁面的固定鏈接),但似乎無法找到該頁面。

然後,如果我刷新頁面(不再次發送POST數據),即通過點擊瀏覽器地址欄並點擊Enter),它像往常一樣再次顯示正確的頁面。

我很難過。爲什麼會這樣做?

編輯:在這裏找到解決方案:https://wordpress.stackexchange.com/questions/11749/why-when-i-submit-a-form-in-wordpress-it-loads-a-404-page-though-url-is-correct感謝@ DigitalDesignDj的建議,看看那裏。

回答

1

聽起來好像你的函數返回一個值在頁面上顯示,但只有當它成功地發送一封電子郵件。您需要抑制該函數的輸出,因爲我猜測它發生在wp_head之上,並干擾啓動模板過程的調用。

這是一個猜測,但去尋找那個輸出,這是我所能想到的。

你可能有更好的運氣,要求在https://wordpress.stackexchange.com/

+0

感謝您的輸入 - 這是一個很好的猜測,我認爲同樣的事情在第一,但功能不輸出任何東西,它只是填充變量...等等我不認爲這是一個頭部問題。我會給wordpress論壇一個鏡頭,雖然,好的提示:)謝謝! – bobsoap 2012-03-06 01:07:44

+0

DigitalDesignDj,你是對的。 Wordpress.stack已經有了答案:http://wordpress.stackexchange.com/questions/11749/why-when-i-submit-a-form-in-wordpress-it-loads-a-404-page-though-網址是正確的 - 我會標記你的答案是正確的。再次感謝! – bobsoap 2012-03-06 01:13:34