Verwenden Sie die Abfragezeichenfolge in der URL, um den Inhalt der Seite anzuzeigen

9

Ich möchte auf meiner Seite etwas sagen, basierend darauf, von welcher Seite die Person dort gekommen ist. Ich kann den Link zu dieser Seite wie folgt einrichten:

www.example.com/page?parameter=myparameter

Gibt es eine Möglichkeit, auf diesen Parameter zuzugreifen, damit er irgendwo in meinem Inhalt auf der Seite angezeigt wird?

user3515
quelle
Es tut mir leid, ich verstehe, dass die Antworten Beispiele sind, aber ich finde es wichtig zu beachten, dass sie nicht so wie sie sind verwendet werden sollten. Benutzereingaben (wie Abfragezeichenfolgenparameter ) sollten niemals unbeaufsichtigt wiedergegeben werden , um XSS-Angriffe zu verhindern ! Alle bisherigen Antworten sind für XSS anfällig und sollten mindestens eine Warnung enthalten.
Kubi

Antworten:

4

Sie können eine PHP-Sitzung verwenden, im Abfrageobjekt nach der Anforderung suchen oder $ _GET mit Ihrer URL verwenden, aber es handelt sich nicht um vertrauliche Informationen ...

Etwas wie das;

Holen Sie sich den Namen der Reise von der URL

$tripname = $_GET['tripname'];

Verwenden Sie es in Ihrer Überschrift;

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

Dan
quelle
Vielen Dank! Dies sind keine sensiblen Informationen. Wie würde ich das machen?
user3515
Dies könnte Ihnen helfen: w3schools.com/php/php_get.asp
Dan
Vielen Dank! Kann ich das direkt auf die Seite setzen oder muss es in eine Vorlagendatei gehen?
user3515
Kommt darauf an, wo Sie es brauchen - wenn es nur auf einer Seite angezeigt wird, die auf einer Vorlage ausgeführt wird, würden Sie es dort ablegen. Woher kommen die Informationen und wo werden sie landen?
Dan
Die Geschichte ist wie folgt: Ich habe viele "Reiseseiten", von denen jede Informationen über eine bestimmte Reise enthält, die wir durchführen. Dann klicken sie auf "Registrieren" und gelangen auf eine Seite mit einem Registrierungsformular (Schwerkraftformulare). Ich möchte, dass auf der Seite (oder in der Beschreibung oben im Formular) "Füllen Sie dieses Formular aus, um sich für die xxxx-Reise zu registrieren" steht.
user3515
4

Gemäß der Antwort des OP in seiner Frage:

Mit Ihrer Hilfe und etwas Googeln habe ich einen Shortcode zusammengestellt, der den Wert eines beliebigen URL-Parameters zurückgibt. Hier ist es:

//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'); 

Ich benutze den Shortcode wie folgt, um das trip_typevon meiner URL zu erhalten:

[URLParam param='trip_type']
Ethan Jinks O'Sullivan
quelle
Das hat mir geholfen, danke! Wie erhalte ich Werte aus Formularpostdaten anstelle von Abfragezeichenfolgen?
Amjad
1

Hier ist eine weitere großartige Möglichkeit, dies zu erreichen. Dies erfordert keine Shortcodes und aktualisiert automatisch jede von Ihnen erstellte Seite, auf der der Parameter "trip" vorhanden ist!

1) Navigieren Sie zu Ihrem Themenordner und öffnen Sie die Datei functions.php (oder erstellen Sie sie, wenn sie fehlt).

2) Fügen Sie den folgenden Code hinzu und speichern Sie:

<?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;

    }
?>

Dieser Code verwendet den Filter_content , um jedes Mal zu überschreiben, wenn Sie die Funktion the_content () zum Drucken Ihrer Blog-Informationen verwenden. Es erkennt, ob es sich bei der angeforderten Seite um eine einzelne Seite / einen Beitrag handelt und nicht um das Archiv. Zusätzliche Logik oder Überschreibungen können hinzugefügt werden. Stellen Sie einfach sicher, dass Sie $ content zurückgeben und jede gewünschte Nachricht auf dem Bildschirm angezeigt wird.

Genießen!

WordPress Plugineer
quelle