这个问题背后的想法在于摘录使用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不起作用。
答案 0 :(得分:12)
使用此正则表达式:
$excerpt = get_the_excerpt();
$excerpt = preg_replace("~(?:\[/?)[^/\]]+/?\]~s", '', $excerpt);
答案 1 :(得分:0)
值得一提的是,您可以使用文本编辑器(例如Notepad ++或EditPad Pro)和以下正则表达式来执行相同的操作:\[/?[^/\]]+/?\]
这将匹配所有短代码,然后您就可以替换为空或空格。