utiliser la chaîne de requête dans l'URL pour afficher le contenu sur la page


9

Je voudrais dire quelque chose sur ma page en fonction de la page à partir de laquelle la personne est arrivée. Je peux configurer le lien vers cette page pour être:

www.example.com/page?parameter=myparameter

Existe-t-il un moyen d'accéder à ce paramètre afin de pouvoir l'afficher sur la page, quelque part dans mon contenu?


Désolé, je comprends que les réponses sont des exemples, mais je trouve important de noter qu'elles ne doivent pas être utilisées telles quelles. L'entrée utilisateur (comme les paramètres de la chaîne de requête) ne doit jamais être répercutée sans contrôle pour empêcher les attaques XSS ! Jusqu'à présent, toutes les réponses sont vulnérables à XSS et devraient au moins inclure un avertissement.
kubi

Réponses:


4

Vous pouvez utiliser une session PHP, regarder dans l'objet de requête pour la demande, ou utiliser $ _GET avec votre URL, mais ce n'est pas pour des informations sensibles ...

Quelque chose comme ça;

Récupérez le nom du voyage dans l'URL

$tripname = $_GET['tripname'];

Utilisez-le dans votre rubrique;

if(isset($tripname)) echo '<h1>Plan Your Trip To ' .$tripname. '</h1>';


Merci! Ce ne sont pas des informations sensibles. Comment pourrais-je procéder?
user3515

Cela pourrait vous aider: w3schools.com/php/php_get.asp
Dan

Merci! Puis-je mettre cela directement sur la page, ou faut-il aller dans un fichier modèle?
user3515

Cela dépend de l'endroit où vous en avez besoin - s'il ne s'affiche que sur une page qui s'exécute sur un modèle, vous le mettriez là. D'où proviennent les informations et où vont-elles aboutir?
Dan

L'histoire est la suivante: j'ai beaucoup de «pages de voyage», chacune contenant des informations sur un certain voyage que nous organisons. Ensuite, ils cliquent sur "s'inscrire", et cela les amène à une page avec un formulaire d'inscription (formes gravitaires). J'aimerais que la page (ou bien la description en haut du formulaire) dise "Remplissez ce formulaire pour vous inscrire au voyage xxxx".
user3515

4

Selon la réponse du PO dans sa question:

Avec votre aide et quelques recherches sur Google, j'ai mis en place un shortcode qui renvoie la valeur de tout paramètre d'URL. C'est ici:

//THIS IS A CUSTOM SHORTCODE TO DISPLAY A PARAMETER FROM THE URL
function URLParam( $atts ) {  
    extract( shortcode_atts( array(
        'param' => 'param',
    ), $atts ) );
    return $_GET[$param];  
}
add_shortcode('URLParam', 'URLParam'); 

J'utilise le shortcode comme ceci pour obtenir le trip_typedepuis mon URL:

[URLParam param='trip_type']

Cela m'a aidé, merci! Comment puis-je obtenir des valeurs à partir des données de publication de formulaire au lieu de la chaîne de requête?
Amjad

1

Voici un autre excellent moyen d'y parvenir. Cela ne nécessitera pas de shortcodes et mettra automatiquement à jour chaque page que vous créez là où le paramètre "trip" est présent!

1) Accédez à votre dossier de thème et ouvrez functions.php (ou créez-le s'il manque)

2) Ajoutez le code suivant et enregistrez:

<?php 
    add_filter( 'the_content', 'my_trip_filter' );

    function my_trip_filter( $content ) {
        if ( isset($_REQUEST['trip']) && is_single() ) {
            $content = "<h1>Fill out this form to register for the " . $_REQUEST['trip'] . " trip</h1>" . $content;
        }

        return $content;

    }
?>

Ce code utilise le filtre the_content pour remplacer chaque fois que vous utilisez la fonction the_content () pour imprimer les informations de votre blog. Il détecte si la page demandée est une seule page / publication et non l'archive. Une logique ou des remplacements supplémentaires peuvent y être ajoutés. Assurez-vous simplement de renvoyer $ content et le message que vous désirez sera renvoyé à l'écran.

Prendre plaisir!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.