Come si passano i parametri A uno shortcode?
Ho visto articoli su come aggiungere parametri agli shortcode, in modo da poter fare qualcosa come [my-shortcode post_id=7]
, per passare un ID di un post a uno shortcode.
Supponiamo di avere un modulo nella mia pagina e l'utente inserisce qualcosa o seleziona qualcosa e in base a ciò voglio aggiornare il contenuto rappresentato dallo shortcode utilizzando i parametri forniti dall'utente.
Come si può realizzare questo?

Supponiamo tu abbia un modulo che invia i dati nel seguente modo:
<form method="post" name="car-select" action="<?php echo site_url('/my-page/'); ?>">
<select name="make">
<option value="benz">Benz</option>
<option value="bmw">BMW</option>
<option value="audi">Audi</option>
</select>
<input type="submit" value="Trova la mia auto dei sogni!"/>
</form>
Ora vuoi interrogare alcuni post in base alla scelta dell'utente, giusto? È qui che $_POST
diventa utile:
add_shortcode('my-shortcode','my_shortcode_function');
function my_shortcode_function($atts){
// Ottieni l'ID dallo shortcode
$id = $atts['post_id'];
// Verifica se i dati del modulo sono stati inviati
if (isset($_POST['make']) && $id){
$car_manufacturer = $_POST['make'];
// Ora hai i dati del modulo. Fai quello che vuoi con essi
return $my_shortcode_values;
}
}
Dovrai estendere questo codice per adattarlo alle tue esigenze, come definire cosa fare se non ci sono dati dal modulo.

Vale la pena notare che se si utilizza $_GET invece. Il valore rimarrà anche se l'utente aggiorna la pagina (F5).
if (isset($_GET['make']) && $id){
$car_manufacturer = $_GET['make'];
// Ora hai i dati del form. Fai quello che vuoi con essi
return $my_shortcode_values;
}
