Cum se transmit parametri către un shortcode?

12 iun. 2017, 13:26:17
Vizualizări: 15.8K
Voturi: 2

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?

0
Toate răspunsurile la întrebare 2
1

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.

12 iun. 2017 14:41:12
Comentarii

Înțeleg că acesta răspunde la întrebarea mea, dar nu trebuie să transmit un parametru către shortcode, funcția trebuie doar să preia datele POST și să facă ceva cu ele.

Russell Eubanks Russell Eubanks
13 iun. 2017 18:57:07
0

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;
    }
13 iun. 2023 10:25:08