Tengo este shortcode en el contenido de mi página en Wordpress. Necesito obtener el valor de "layout" y el valor de "slug"
Entonces necesito los valores: listado y aviones extraídos de la cadena
Estoy buscando el impacto más bajo posible en el rendimiento. Estoy tratando de obtener estos valores del enlace save_post, por lo que no tengo acceso al parámetro normal de shortcode $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]'Cuando uso la función nativa de WP shortcode_parse_atts me acerco pero hay algunos problemas:
$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]'Si esos dos valores son literalmente todo lo que necesita, Regex podría ser una solución razonable aquí. (solo tenga cuidado con todo el asunto del "martillo y clavos" con Regex y HTML)
Haga coincidir el grupo 1 en el layout="([^"]*)" obtendrá el valor de la lista .
Haga coincidir el grupo 1 en slug="([^"]*)" para obtener el valor del avión .
Ambos funcionan en su cadena de ejemplo (como se probó en https://regex101.com/ ).