2017-08-03 62 views
1

所以我的應用程序的主題結構如何將表單發佈到wordpress中的另一個php文件?

-wp-content 
    -themes 
    -cool 
    -templates 
    -landing.php 
    - post-landing.php 

我有landing.php一種形式,我希望把入landing.php後本人已POST請求,

form action="wp-content/themes/cool/templates/post-landing.php" 

但是,當我做了一個帖子請求它說404.

回答

0

你不能(也不應該)直接調用wp主題的PHP文件。 單程這樣做是爲了創建landing.phppost-landing.php作爲wp_template文件。然後使用Wp-admin中的這些模板創建Pages。然後landing.php使用與該post-landing.php模板一起創建的頁面的鏈接作爲表單的操作。

0

這裏的另一種方式:如果你希望異步管理,你可以創建一個AJAX調用像這樣(我通常把它放在我的<theme>/inc文件夾,所以它會自動加載):

add_action('wp_ajax_nopriv_<call_name>', '<function name>'); 
add_action('wp_ajax_<call_name>', '<function name>'); 

function <function_name>() {//here you do things with $_POST and return json} 

本地化它在functions.php文件,纔能有你的總是一個變量提供,僅爲您的js文件的請求ajaxUrl:

wp_localize_script('enqueued-js-name', 'varName', array(
    'ajaxUrl' => admin_url('admin-ajax.php') 
)); 

然後你就可以在你的排隊JS文件調用它是這樣的:

jQuery.ajax({ 
    url: varName.ajaxUrl, 
    type: 'post', 
    data: currentDataToSubmit, 
    success: function(response){ 
     //manage the response 
    } 
}); 

就是這樣!希望它有用!

如果第一部分有問題,讓我知道,所以我也可以學習!

+0

我在先嚐試更簡單的方法,所以我做了<?php echo get_stylesheet_directory_uri()。 '/templates/post-landing.php'?>它給出了正確的網址,但它仍然說404.這是否與權限有關? – user3840211

+0

我做了一個檢查,我不正確地記得我做過一次,但所有的步驟都由同一頁面管理。看起來像阿米特是完全正確的。在技​​術上,我會一直試圖理解這種方法有什麼問題,但這也可能是wordpress'htaccess規則的原因!現在,你有「我的」方式或阿米特的方式。我道歉! – riot

相關問題