联系表7有一些短代码,如[_date]可以获得今天的日期。但我想显示一周后的日期。因此,我需要创建一个自定义的短代码联系表7,采取说[下周]和在收到的电子邮件中显示正确的日期。在何处以及如何创建联系表单7的自定义短代码?
ni65a41a1#
将以下内容添加到functions.php
wpcf7_add_shortcode('custom_date', 'wpcf7_custom_date_shortcode_handler', true); function wpcf7_custom_date_shortcode_handler($tag) { if (!is_array($tag)) return ''; $name = $tag['name']; if (empty($name)) return ''; $next_week = date('Y-m-d', time() + (60*60*24*7)); $html = '<input type="hidden" name="' . $name . '" value="' . $next_week . '" />'; return $html; }
现在,在CF7 GUI的“Form”字段中键入[custom_date next_week]现在可以在消息正文中使用[next_week]。
[custom_date next_week]
[next_week]
0x6upsns2#
这对响应方来说有点晚了,但是当我想在我的表单和邮件正文中添加自定义短代码时,我总是看到这篇帖子。我希望能够插入短代码,而不需要在CF7中特别注册它们,并且通常只在邮件正文中注册(CF7似乎做不到这一点)。下面是我最终的做法:
// Allow custom shortcodes in CF7 HTML form add_filter( 'wpcf7_form_elements', 'dacrosby_do_shortcodes_wpcf7_form' ); function dacrosby_do_shortcodes_wpcf7_form( $form ) { $form = do_shortcode( $form ); return $form; } // Allow custom shortcodes in CF7 mailed message body add_filter( 'wpcf7_mail_components', 'dacrosby_do_shortcodes_wpcf7_mail_body', 10, 2 ); function dacrosby_do_shortcodes_wpcf7_mail_body( $components, $number ) { $components['body'] = do_shortcode( $components['body'] ); return $components; }; // Add shortcode normally as per WordPress API add_shortcode('my_code', 'my_code_callback'); function my_code_callback($atts){ extract(shortcode_atts(array( 'foo' => 'bar' ), $atts)); // do things return $foo; }
s3fp2yjn3#
CF 7中有两种类型的标记:* 表单标签 *(联系表单本身)和mail tags(电子邮件)-read more。1.自定义表单标记:要添加自定义表单标记,可以使用wpcf7_init操作挂钩(Read more)上的wpcf7_add_form_tag()函数。
wpcf7_init
wpcf7_add_form_tag()
wpcf7_add_shortcode()
1.自定义邮件标记:我没有找到任何内置的功能来添加自定义邮件标签,但我相信有多种可能的解决办法:
wpcf7_special_mail_tags
function my_special_mail_tag( $output, $name, $html ) { if ( 'myshortcode' === $name ) { $output = do_shortcode( "[$name]" ); } return $output; } add_filter( 'wpcf7_special_mail_tags', 'my_special_mail_tag', 10, 3 );
1.向表单中添加一个包含预填充数据的自定义隐藏表单标记,然后在邮件中使用它:[my-custom-form-tag-with-some-prepopulated-data];定制表单标签应注册到wpcf7_add_form_tag(),如上所述。
[my-custom-form-tag-with-some-prepopulated-data]
zu0ti5jz4#
我的解决方案很简单。做任何你想要的简码,并把它放在联系人的形式领域。只是不要忘记做以下几点:在functions.php中只放置以下代码,您的短代码就可以工作:add_filter('wpcf 7表格元素','do短代码');
cgvd09ve5#
在表单模板内启用短代码溶液1-使用wpcf7_form_elements过滤器
wpcf7_form_elements
使用wpcf7_form_elements过滤器,我们可以修改表单的HTML输出。由于输出将包含添加到表单模板中的短代码,因此我们需要做的只是将do_shortcode函数作为回调绑定到functions.php中的此过滤器,如下所示:
do_shortcode
functions.php
add_filter( 'wpcf7_form_elements', 'do_shortcode' );
解决方案2-使用Contact Form 7扩展插件
如果你对编辑functions.php文件感到不舒服,有一个Contact Form 7 Shortcode Enabler插件可以做同样的事情。
**注:**目前,插件最新更新是5年前,但插件只执行相同的代码行作为解决方案1,所以它应该仍然与WordPress的最新版本。在邮件模板中启用短代码
wpcf7_special_mail_tags过滤器用于自定义Contact Form 7的form-tags和special tags的输出。幸运的是,此过滤器还检测在Mail Template中找到的自定义短代码,因此我们也可以使用此过滤器来处理这些短代码。您需要在functions.php文件中添加以下代码:
function my_special_mail_tag( $output, $name, $html ) { if ( 'myshortcode' == $name ) $output = do_shortcode( "[$name]" ); return $output; } add_filter( 'wpcf7_special_mail_tags', 'my_special_mail_tag', 10, 3 );
ddarikpa6#
我以前没有这样做过,但我认为短代码是由wordpress自己管理的(即使是CF7插件)。创建简单短代码的示例如下:
//[foobar] function foobar_func( $atts ){ return "foo and bar"; } add_shortcode( 'foobar', 'foobar_func' );
放置在functions.php中。如需了解更多信息:http://codex.wordpress.org/Shortcode_API或者你可以使用这样的插件来完成这项工作:http://wordpress.org/extend/plugins/shortbus/
6条答案
按热度按时间ni65a41a1#
将以下内容添加到functions.php
现在,在CF7 GUI的“Form”字段中键入
[custom_date next_week]
现在可以在消息正文中使用
[next_week]
。0x6upsns2#
这对响应方来说有点晚了,但是当我想在我的表单和邮件正文中添加自定义短代码时,我总是看到这篇帖子。我希望能够插入短代码,而不需要在CF7中特别注册它们,并且通常只在邮件正文中注册(CF7似乎做不到这一点)。
下面是我最终的做法:
s3fp2yjn3#
CF 7中有两种类型的标记:* 表单标签 *(联系表单本身)和mail tags(电子邮件)-read more。
1.自定义表单标记:
要添加自定义表单标记,可以使用
wpcf7_init
操作挂钩(Read more)上的wpcf7_add_form_tag()
函数。wpcf7_add_shortcode()
函数被视为已弃用,将被此函数取代。*1.自定义邮件标记:
我没有找到任何内置的功能来添加自定义邮件标签,但我相信有多种可能的解决办法:
wpcf7_special_mail_tags
筛选器:1.向表单中添加一个包含预填充数据的自定义隐藏表单标记,然后在邮件中使用它:
[my-custom-form-tag-with-some-prepopulated-data]
;定制表单标签应注册到wpcf7_add_form_tag()
,如上所述。zu0ti5jz4#
我的解决方案很简单。做任何你想要的简码,并把它放在联系人的形式领域。只是不要忘记做以下几点:在functions.php中只放置以下代码,您的短代码就可以工作:
add_filter('wpcf 7表格元素','do短代码');
cgvd09ve5#
在表单模板内启用短代码
溶液1-使用
wpcf7_form_elements
过滤器使用
wpcf7_form_elements
过滤器,我们可以修改表单的HTML输出。由于输出将包含添加到表单模板中的短代码,因此我们需要做的只是将do_shortcode
函数作为回调绑定到functions.php
中的此过滤器,如下所示:解决方案2-使用Contact Form 7扩展插件
如果你对编辑functions.php文件感到不舒服,有一个Contact Form 7 Shortcode Enabler插件可以做同样的事情。
**注:**目前,插件最新更新是5年前,但插件只执行相同的代码行作为解决方案1,所以它应该仍然与WordPress的最新版本。
在邮件模板中启用短代码
wpcf7_special_mail_tags
过滤器用于自定义Contact Form 7的form-tags和special tags的输出。幸运的是,此过滤器还检测在Mail Template中找到的自定义短代码,因此我们也可以使用此过滤器来处理这些短代码。您需要在
functions.php
文件中添加以下代码:ddarikpa6#
我以前没有这样做过,但我认为短代码是由wordpress自己管理的(即使是CF7插件)。
创建简单短代码的示例如下:
放置在functions.php中。
如需了解更多信息:http://codex.wordpress.org/Shortcode_API
或者你可以使用这样的插件来完成这项工作:http://wordpress.org/extend/plugins/shortbus/