剥离短代码,保持介于两者之间的内容

时间:2015-10-14 19:27:43

标签: wordpress shortcode strip

这个问题背后的想法在于摘录使用avada创建的帖子,但我不能从帖子内容中删除短代码以显示帖子的摘录。

以下是我的帖子示例(使用avada):

[fullwidth background_color="" background_image="" class="" id=""]
[one_full last="yes" spacing="yes" class="" id=""][fusion_text]
Content text ...   
[/fusion_text][/one_full][/fullwidth]`

由于短代码,默认the_excerpt();无法正常工作。 get_content()会返回包含短代码的完整帖子内​​容。使用strip_shortcodes()也会删除短代码之间的内容。

所以我的计划是使用模式剥离短代码?并修剪消息以模仿摘录功能。 PS:这pattern不起作用。

2 个答案:

答案 0 :(得分:12)

使用此正则表达式:

$excerpt = get_the_excerpt();
$excerpt = preg_replace("~(?:\[/?)[^/\]]+/?\]~s", '', $excerpt);

答案 1 :(得分:0)

值得一提的是,您可以使用文本编辑器(例如Notepad ++或EditPad Pro)和以下正则表达式来执行相同的操作:\[/?[^/\]]+/?\]

这将匹配所有短代码,然后您就可以替换为空或空格。