链接到自定义Wordpress主题中的自定义.php文件

时间:2011-12-10 17:32:02

标签: php forms wordpress

我正在制作一个Wordpress主题,里面有一个Jquery动画联系表单。我已经让js工作了(一个div在点击时显示/隐藏,其中包含表格)。这是一个静态HTML / PHP example(单击“联系人”按钮)。你说的问题是什么?问题是实际的表格没有发送。我有php文件'contact engine.php',它将表单发送到我的模板目录中名为'php'的文件夹中。在HTML中我得到了:

<form method="post" action="<?php bloginfo('template_directory'); ?>/php/contactengine.php">
            <label for="Name">Name:</label>
            <input type="text" name="Name" id="Name" />
            <label for="Email">Email:</label>
            <input type="text" name="Email" id="Email" />
            <label id="bericht" for="Message">Message:</label><br />
            <textarea name="Message" rows="10" cols="20" id="Message"></textarea>
            <input type="submit" name="submit" value="Submit" class="submit-button" />
</form>

经过一番摆弄后,我把问题缩小到了php文件的实际链接。 Wordpress不会将输入发送到php文件,也没有任何操作。在一些谷歌会议后,我发现大多数人都使用插件,我不喜欢。另外,似乎Wordpress不允许你编写自己的php片段来在主题中实现。我还发现了一些建议我应该将php片段放在每个模板附带的functions.php文件中,但我不知道如何链接到functions.php中的特定php片段。谁知道如何解决这个问题?提前谢谢!

P.S。 php脚本如下所示:

<?php

$EmailFrom = "contactformulier@stefanhagen.nl";
$EmailTo = "info@stefanhagen.nl";
$Subject = "Contactformulier StefanHagen.nl";
$Name = Trim(stripslashes($_POST['Name'])); 
$Tel = Trim(stripslashes($_POST['Tel'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Message = Trim(stripslashes($_POST['Message'])); 

// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
// $Body .= "Tel: ";
// $Body .= $Tel;
// $Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page 
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=../index.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

1 个答案:

答案 0 :(得分:1)

我知道当您在WordPress中提交表单时,您的代码将无法正常工作,因为WordPress会过滤掉所有的帖子变量。当您使用自己的脚本时,不应该发生。那么你的contactengine.php脚本是怎么样的呢?你在其中使用了包含WordPress吗?如果是这样,你会处理WordPress脚本。

我在您的网站上看到的是     &LT; ?php bloginfo('template_directory'); ?&GT; 没有出现。它也更好用     &LT; ?php echo get_template_directory_uri(); ?&GT;

如果人们使用插件,我也会这样做。易于更改后端的表单,但这可能是一个负面因素,因为客户可以更改它。