如何在不接触错误跨度的情况下移除CF7中的跨度?

时间:2019-10-02 作者:kaizerr

add_filter(\'wpcf7_form_elements\', function($content) {
    $content = preg_replace(\'/<(span).*?class="\\s*(?:.*\\s)?wpcf7-form-control-wrap(?:\\s[^"]+)?\\s*"[^\\>]*>(.*)<\\/\\1>/i\', \'\\2\', $content);

    return $content;
});
我使用这段代码,但这段代码删除了所有跨度,也有错误,但我想显示错误消息

1 个回复
SO网友:Aurovrata

CF7表单使用<div class="wpcf7-response-output"></div> 显示错误消息,因此我不确定您所说的span错误是什么意思。

CF7插件使用span元素作为其验证提示消息,这些消息在提交后显示为无效字段。可以使用wpcf7_validation_error hook.

但是,我不建议删除字段包装,因为包括cf7在内的许多插件都使用该字段包装来定位/样式cf7表单元素。我建议你用<div> 元素,只需向表单页面添加css样式规则即可显示div.wpcf7-form-control-wrap 内联。

add_filter(\'wpcf7_form_elements\', function($content) {
  $content = str_replace(\'<span\', \'<div\', $content);
  $content = str_replace(\'</span\', \'</div\', $content);
  return $content;
});
因此,除此之外,我将向表单页面添加以下css样式规则,

div.wpcf7-form-control-wrap{display:inline}
div.wpcf7-list-item {
    display: inline-block;
    margin: 0 0 0 1em;
}
div.wpcf7-list-item-label::before,
div.wpcf7-list-item-label::after {
    content: " ";
}
请记住,cf7插件专门针对插件加载的js脚本文件中的测验标签span,因此如果需要使用测验字段,则需要找到解决问题的替代方法。

相关推荐