我在Wordpress的页面内容中有这个短代码。我需要获得“layout”的值以及“slug”的值
所以我需要价值观: list&飞机从字符串中提取
我正在寻找尽可能低的性能。我试图从save_post钩子获取这些值,所以我无法访问正常的短代码$ atts参数。
'[vc_row][vc_column width="2/3"]
[cpt_categories layout="listing" view="grid" items_per_row="4" orderby="title" order="ASC" slug="aircraft"]
[/vc_column][vc_column width="1/3"][/vc_column][/vc_row]'
当使用原生WP功能shortcode_parse_atts时,我接近但有一些问题:
$atts = shortcode_parse_atts($post->post_content);
var_dump($atts);
array
0 => '[vc_row][vc_column'
1 => 'width="2/3"][cpt_categories'
'layout' => 'listing'
'view' => 'grid'
'items_per_row' => '4'
'orderby' => 'title'
'order' => 'ASC'
2 => 'slug="aircraft"][/vc_column][vc_column'
3 => 'width="1/3"][/vc_column][/vc_row]'
答案 0 :(得分:1)
如果这两个值完全符合您的要求,那么Regex可能是一个合理的解决方案。 (只需注意整个"锤子和钉子"正则表达式和HTML)
layout="([^"]*)"
中的第1组匹配将为您提供列表值。
slug="([^"]*)"
中的第1组匹配将为您提供飞机值。
它们都适用于您的示例字符串(在https://regex101.com/处测试过)。