如何更改联系表格7的表格动作网址?

use*_*824 8 wordpress contact contact-form-7

我在wordpress网站上使用Contact Form 7有多种形式.我需要将一个表单指向不同的表单操作URL.

我在下面的帖子中找到了回复,但是我不确定该怎么做.有人可以指定"附加设置"中需要包含哪些确切代码以及functions.php中的代码是什么样的?

谢谢你的帮助!


来自差异的回复.线程,我不完全理解......

*是的,您必须使用此Filter Hook wpcf7_form_action_url更改表单中的"action"属性.(代码是什么?)您可以将钩子添加到主题的functions.php中,然后只需处理ASP页面中的表单数据.(代码?)*


mai*_*o84 33

由于您根本不熟悉PHP代码,因此我将在Wordpress API中为您提供一些编码速成课程.

首先,您需要了解函数和变量之间的区别.变量是表示任意值的单个实体.价值可以是任何东西.数字,某人的名字或复杂的数据.

函数是执行一系列操作以发回或返回变量或更改给定变量的函数.

<?php
$a = 1; //Number
$b = 'b'; //String *note the quotes around it*
$c = my_function(); //Call to a function called my_function
echo $a; //1
echo $b; //b
echo $c; //oh, hello
function my_function()
{
    return 'oh, hello';
}
?>
Run Code Online (Sandbox Code Playgroud)

Wordpress利用自己的动作和过滤系统松散地基于事件驱动编程风格.

这意味着Wordpress正在"监听"特定事件的发生,当它发生时,它会执行附加到该事件的函数(也称为回调).这些是"动作"和"过滤器".那有什么区别?

动作是做东西
的函数过滤器是返回东西的函数

那么这一切如何适合你的问题呢?

联系表单7有自己的过滤器,返回其表单发送信息的URL.

让我们来看看Filter Hook的基础知识

add_filter('hook_name', 'your_filter');
Run Code Online (Sandbox Code Playgroud)
  1. add_filter是告诉Wordpress需要监听特定事件的函数.
  2. 'hook_name'是Wordpress正在侦听的事件.
  3. 'your_filter'是在触发'hook_name'事件时调用的函数 - 或回调函数.

前一个线程的链接指出您需要使用的钩子名称是'wpcf7_form_action_url'.这意味着你所要做的就是调用add_filter,将'hook_name'设置为'wpcf7_form_action_url',然后将'your_filter'设置为你将设置为回调函数的名称.

完成后,您只需要定义一个名称与您放置的"your_filter"相匹配的函数,并确保它返回一个URL来修改表单操作.

现在出现问题:这将改变你的所有形式.但第一件事是第一件事:看看你是否可以自己获得一些有效的代码.只需在functions.php中编写代码,并告诉我们结果如何.

更新:

你能够如此快速地获得它的事实是非常好的,并且显示了你为此付出的研究工作量.

把所有这些都放在functions.php中

add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url()
{
    return 'wheretopost.asp';
}
Run Code Online (Sandbox Code Playgroud)

如前所述,这将影响您的所有表单.如果这只会影响给定页面上的表单,您可以执行以下操作:

add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
    global $post;
    $id_to_change = 1;
    if($post->ID === $id_to_change)
        return 'wheretopost.asp';
    else
        return $url;
}
Run Code Online (Sandbox Code Playgroud)

您需要做的就是将$ id_to_change的值更改为一个数字,该数字代表您尝试影响的帖子/页面的ID.因此,如果 - 例如 - 您有一个想要更改操作URL的关于页面,您可以在管理仪表板中找到关于页面的ID号(只需转到页面编辑器并在URL中查找ID数字)并将1更改为ID号.

希望这可以帮助你,祝你好运.

  • 我故意没有立即给你完整的答案。您需要通读本文,提出正确的 add_filter 调用,以及您自己的回调函数。一旦你这样做了,我们可以指导你完成更多。所有的作品都为你准备好了。 (2认同)