Cum se transmit parametri către un shortcode?
Am văzut articole despre cum să adaugi parametri la shortcode-uri, astfel încât să poți folosi ceva de genul [my-shortcode post_id=7]
, pentru a transmite un ID de post către un shortcode.
Să presupunem că am un formular pe pagina mea și utilizatorul introduce ceva sau selectează ceva, iar pe baza acestui input vreau să actualizez conținutul reprezentat de shortcode folosind parametri furnizați de utilizator.
Cum se realizează acest lucru?

Să presupunem că ai un formular care trimite datele în următorul mod:
<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="Găsește mașina visurilor mele!"/>
</form>
Acum vrei să interoghezi anumite postări bazate pe alegerea utilizatorului, corect? Aici intervine $_POST
:
add_shortcode('my-shortcode','my_shortcode_function');
function my_shortcode_function($atts){
// Obține ID-ul din shortcode
$id = $atts['post_id'];
// Verifică dacă datele formularului au fost trimise
if (isset($_POST['make']) && $id){
$car_manufacturer = $_POST['make'];
//Acum ai datele din formular. Fă ce vrei cu ele
return $my_shortcode_values;
}
}
Trebuie să extinzi acest cod pentru a se potrivi nevoilor tale, cum ar fi definirea acțiunilor în cazul în care nu există date din formular.

Este important de menționat că, dacă folosești $_GET în loc. Valoarea va rămâne chiar dacă utilizatorul reîmprospătează (F5) pagina.
if (isset($_GET ['make']) && $id){
$car_manufacturer = $_GET ['make'];
//Acum, ai datele din formular. Fă ce dorești cu ele
return $my_shortcode_values;
}
