在我网站的每一页上,我都会收到一份联系表,它会向相应的地址发送一封电子邮件。在这个网站上,我还将首页显示设置为静态页面。
联系人表单基本上会发布到self,如果成功,会将用户带到新页面,否则会定位到联系人表单并显示错误。但在主页上,无论是何种类型的POST请求,它都会将页面设置为posts页面。对我来说似乎很奇怪,因为它可能是一个空的帖子请求,仍然会将用户带回帖子页面,但URL不会更改。只有当您在主页上发布帖子时,才会出现这种情况,所有其他页面都会按预期工作。
有什么想法吗?
add_action( \'wp_head\', \'process_contact_form\' );
function process_contact_form() {
if( isset( $_POST[\'submit\'] ) && $_POST[\'submit\'] ) {
echo\'test\';
}
}
add_shortcode( \'mini-contact\', \'get_mini_contact\' );
function get_mini_contact( $atts = array() ) {
extract(shortcode_atts(array(
\'title\' => \'Contact US\',
\'button\' => \'Submit\',
\'label\' => \'Message us\',
\'subject\' => \'Message\'
), $atts));
$html = \'\';
$html .= \'<section id="quick-contact-form" class="home-solution">\';
$html .= \'<div class="container">\';
$html .= \'<header>\';
$html .= \'<h2 class="aligncenter type--bottom-space">\' . $title . \'</h2>\';
$html .= \'</header>\';
$html .= \'
<form class="contact-form" method="post" action="">
<div class="row">
<div class="medium-5 columns">
<label>Name</label>
<input type="text" name="name" class="form-contact__text" />
</div>
<div class="medium-5 columns">
<label>E-mail</label>
<input type="text" name="email" class="form-contact__text" />
</div>
</div>
<div class="row">
<div class="medium-10 columns">
<label>Share your business problem today</label>
<textarea name="comment" rows="20" class="form-contact__textarea"></textarea>
</div>
</div>
<div class="row">
<div class="medium-10 columns">
<input type="submit" name="submit" value="\' . $button . \'" class="button expand">
</div>
</div>
<input type="hidden" name="subject" value="\' . $subject . \'">
</form>
\';
$html .= \'</div>\';
$html .= \'</section>\';
return $html;
}
最合适的回答,由SO网友:Steven Jones 整理而成
发布表单时,如果使用“name”作为输入名称,则提交时似乎存在问题。
尝试更改:
<input type="text" name="name" class="form-contact__text" />
收件人:
<input type="text" name="the_name" class="form-contact__text" />
此外,最好给提交按钮一个更独特的名称,以防它与任何插件/主题冲突,然后在
process_contact_form()
作用