【问题标题】:Remove visual composer shortcode删除可视化作曲家简码
【发布时间】:2018-01-09 08:58:30
【问题描述】:

我正在尝试使用 preg_replace 从可视化作曲家中删除所有不必要的短代码。例如。有一些像这样的元素:

[vc_row][/vc_row][vc_row el_class="hidepdf]

最好的方法是删除 [] 之间的任何内容,以 vc_ 开头,然后是直到结束括号 ] 的任何内容

我已经用下面的 RegEx 进行了尝试:

/\[[\/]?vc_*[^\]]\]/

但它似乎不起作用。

【问题讨论】:

  • 如果你不使用它的简码,你为什么要使用可视化作曲家?另外,您在哪里添加该代码?在你的functions.php中?
  • 您的正则表达式错误。您必须转义要匹配的方括号,并且也必须转义正斜杠(在 /.../ 内)。尝试类似 /[\/?vc_row(?: .*?)]/
  • 您可以在 www.phpliveregex.com 上测试您的 preg_replace
  • 哦,我刚刚意识到所以删除了我的转义反斜杠......想想你是否仍然需要 Visual Composer。如果不是,请删除它...您这样做的方式不是很好。
  • 我正在使用 dk_pdf 生成 pdf 文档并“翻译”一些 VC 短代码,但我想删除其余的。

标签: php regex wordpress visual-composer


【解决方案1】:

试试这个正则表达式"/\[(\/*)?vc_(.*?)\]/"

【讨论】:

  • 你知道如何用 preg_replace 将 [vc_row el_class="hidepdf"] => 更改为
  • 非常适合您。在我在这里提交之前,我已经用正则表达式对此进行了测试。我不知道为什么有人反对它。我只给出了正则表达式,因为这正是您想要的。
  • 这应该适用于该替换:$div = preg_replace("/\[vc_row(.*?)el_class=\"(.*?)\"\]/", "<div class='$2'>", $str); 当然将 $str 替换为您的输入字符串。
【解决方案2】:

您可以只删除管理控制面板中的内容。 为什么要替换内容,rofl。

但如果你非常需要:

$start = preg_quote('[vc_row]', '/');
$end = preg_quote('[/vc_row]', '/');
$content = preg_replace("/$start.*$end/imsU", '', $content);

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签