utilizzare la stringa di query nell'URL per visualizzare il contenuto della pagina


9

Vorrei dire qualcosa sulla mia pagina in base alla pagina da cui la persona è arrivata. Posso impostare il link a quella pagina in modo che sia:

www.example.com/page?parameter=myparameter

C'è un modo per accedere a quel parametro in modo da poterlo mostrare sulla pagina, da qualche parte nei miei contenuti?


Mi dispiace, capisco che le risposte sono esempi, ma trovo importante notare che non dovrebbero essere utilizzate così come sono. L'input dell'utente (come i parametri della stringa di query) non deve mai essere ripetuto in modo anonimo per prevenire gli attacchi XSS ! Tutte le risposte finora sono vulnerabili a XSS e dovrebbero almeno includere un avviso.
Kubi,

Risposte:


4

È possibile utilizzare una sessione PHP, cercare nella query l'oggetto query o utilizzare $ _GET con l'URL, ma non è per informazioni riservate ...

Qualcosa come questo;

Prendi il nome del viaggio dall'URL

$tripname = $_GET['tripname'];

Usalo nella tua intestazione;

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


Grazie! Questa non è un'informazione sensibile. Come potrei farlo?
user3515

Questo potrebbe aiutarti: w3schools.com/php/php_get.asp
Dan

Grazie! Posso inserirlo direttamente nella pagina o deve andare in un file modello?
user3515

Dipende da dove ne hai bisogno: se viene visualizzato solo su una pagina che gira su un modello, lo inseriresti lì. Da dove provengono le informazioni e dove finiranno?
Dan,

La storia è così: ho molte "pagine di viaggio", ognuna delle quali contiene informazioni su un determinato viaggio che eseguiamo. Quindi, fanno clic su "registra" e li porta a una pagina con un modulo di registrazione (moduli di gravità). Vorrei che la pagina (o la descrizione nella parte superiore del modulo) dicesse "Compila questo modulo per registrarti per il viaggio xxxx".
user3515

4

Per la risposta del PO all'interno della loro domanda:

Con il tuo aiuto e alcuni googling, ho messo insieme uno shortcode che restituisce il valore di qualsiasi parametro url. Ecco qui:

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

Uso lo shortcode in questo modo per ottenere il trip_typedal mio URL:

[URLParam param='trip_type']

Questo mi ha aiutato, grazie! Come ottengo i valori dai dati di post modulo anziché dalla stringa di query?
Amjad,

1

Ecco un altro ottimo modo per ottenere questo risultato. Questo non richiede codici brevi e aggiorna automaticamente ogni pagina creata dove è presente il parametro "viaggio"!

1) Passa alla cartella del tuo tema e apri Functions.php (o crealo se manca)

2) Aggiungi il seguente codice e salva:

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

    }
?>

Questo codice usa il filtro the_content per sovrascrivere ogni volta che usi la funzione the_content () per stampare le informazioni del tuo blog. Rileva se la pagina richiesta è o meno una singola pagina / post e non l'archivio. È possibile aggiungere ulteriori logiche o sostituzioni. Assicurati solo di restituire $ content e qualsiasi messaggio desideri verrà restituito allo schermo.

Godere!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.