【问题标题】:Linking to a custom .php file in custom Wordpress theme链接到自定义 Wordpress 主题中的自定义 .php 文件
【发布时间】:2011-12-10 17:32:02
【问题描述】:

我正在开发一个包含 Jquery 动画联系表单的 Wordpress 主题。我已经让 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 sn-ps 以在主题中实现。我还发现了一些建议我应该将 php sn-p 放在每个模板附带的 functions.php 文件中,但我不知道如何链接到 functions.php 中的特定 php sn-p。任何人都知道如何解决这个问题?提前致谢!

附: 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\">";
}
?>

【问题讨论】:

  • 表单按钮的 javascript 是什么?
  • 表单没有使用 javascript,只有持有它的 div 使用 jquery 来显示/隐藏。该表单只是一个普通的 html 表单,带有一个发送它的 .php 文件。
  • 对不起,也许我看错了你。按钮本身使用 CSS3 过渡进行了一些动画处理。

标签: php forms wordpress


【解决方案1】:

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

我在您的网站上看到的是 没有出现。使用起来也更好

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

【讨论】:

  • 感谢马尔科的提示!早上我会多弄一点。我在原始问题中添加了 .php 文件
  • 另外,我在本地工作 (localhost:8888/...),不知道会不会有什么影响?
  • 我已经使用我为骨骼定制的插件;) ContactForm7... 唯一的问题是邮件在我的 gmail 垃圾邮件箱中结束,所以我必须想办法为此。
猜你喜欢
  • 1970-01-01
  • 2012-04-18
  • 2020-01-13
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多