web-dev-qa-db-fra.com

Comment passez-vous les paramètres à un shortcode?

J'ai vu des articles sur la façon d'ajouter des paramètres aux codes abrégés, de sorte que je puisse dire quelque chose comme [my-shortcode post_id=7], pour passer un ID d'article à un code abrégé.

Supposons que j'ai un formulaire sur ma page et que l'utilisateur entre ou sélectionne quelque chose et sur cette base, je souhaite actualiser le contenu représenté par le shortcode à l'aide d'un ou plusieurs paramètres fournis par l'utilisateur.

Comment est-ce accompli?

1
Russell Eubanks

Disons que vous avez un formulaire qui envoie les données de la manière suivante:

<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="Find my dream car!"/>
</form>

Maintenant, vous voulez interroger certains messages en fonction du choix des utilisateurs, non? C'est ici que $_POST est utile:

add_shortcode('my-shortcode','my_shortcode_function');
function my_shortcode_function($atts){
    // Get the ID from shortcode
    $id = $atts['post_id'];
    // Check if the form data has been sent
    if (isset($_POST['make']) && $id){
        $car_manufacturer = $_POST['make'];
        //Now, you have the form's data. Do whatever you want with it
        return $my_shortcode_values;
    }
}

Vous devez étendre ce code pour répondre à vos besoins, par exemple en définissant quoi faire s'il n'y a pas de données de formulaire.

3
Jack Johansson