Cómo pasar parámetros A un shortcode en WordPress
He visto artículos sobre cómo agregar parámetros a shortcodes, para poder usar algo como [my-shortcode post_id=7]
y pasar un ID de post al shortcode.
Supongamos que tengo un formulario en mi página y el usuario ingresa o selecciona algo. Basado en eso, quiero actualizar el contenido representado por el shortcode usando parámetros proporcionados por el usuario.
¿Cómo se logra esto?

Digamos que tienes un formulario que envía los datos de la siguiente manera:
<form method="post" name="car-select" action="<?php echo site_url('/mi-pagina/'); ?>">
<select name="make">
<option value="benz">Mercedes Benz</option>
<option value="bmw">BMW</option>
<option value="audi">Audi</option>
</select>
<input type="submit" value="¡Encuentra mi auto soñado!"/>
</form>
Ahora quieres consultar algunas publicaciones basadas en la elección del usuario, ¿verdad? Aquí es donde $_POST
resulta útil:
add_shortcode('my-shortcode','my_shortcode_function');
function my_shortcode_function($atts){
// Obtener el ID del shortcode
$id = $atts['post_id'];
// Verificar si se han enviado los datos del formulario
if (isset($_POST['make']) && $id){
$car_manufacturer = $_POST['make'];
// Ahora tienes los datos del formulario. Haz lo que quieras con ellos
return $my_shortcode_values;
}
}
Debes extender este código para adaptarlo a tus necesidades, como definir qué hacer si no hay datos del formulario.

Vale la pena señalar que si usas $_GET en su lugar. El valor permanecerá incluso si el usuario actualiza (F5) la página.
if (isset($_GET ['make']) && $id){
$car_manufacturer = $_GET ['make'];
// Ahora, tienes los datos del formulario. Haz lo que quieras con ellos
return $my_shortcode_values;
}
