use una cadena de consulta en la URL para mostrar contenido en la página

9

Me gustaría decir algo en mi página en función de la página desde donde llegó la persona. Puedo configurar el enlace a esa página para que sea:

www.example.com/page?parameter=myparameter

¿Hay alguna manera de acceder a ese parámetro para que pueda mostrarlo en la página, en algún lugar de mi contenido?

usuario3515
fuente
Lo siento, entiendo que las respuestas son ejemplos, pero me parece importante tener en cuenta que no deben usarse tal como están. ¡La entrada del usuario (como los parámetros de la cadena de consulta) nunca debe hacerse eco sin desinfectar para evitar ataques XSS ! Todas las respuestas hasta ahora son vulnerables a XSS y al menos deberían incluir una advertencia.
kubi

Respuestas:

4

Puede usar una sesión PHP, buscar la solicitud en el objeto de consulta o usar $ _GET con su URL, pero no es para información confidencial ...

Algo como esto;

Toma el nombre del viaje de la URL

$tripname = $_GET['tripname'];

Úselo en su encabezado;

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

Dan
fuente
¡Gracias! Esta no es información confidencial. ¿Cómo voy a hacer eso?
user3515
Esto podría ayudarlo: w3schools.com/php/php_get.asp
Dan
¡Gracias! ¿Puedo poner eso directamente en la página o necesita ir a un archivo de plantilla?
user3515
Depende de dónde lo necesite: si solo se muestra en una página que se ejecuta en una plantilla, lo pondría allí. ¿De dónde viene la información y dónde terminará?
Dan
La historia es así: tengo muchas 'páginas de viajes', cada una de las cuales tiene información sobre cierto viaje que realizamos. Luego, hacen clic en "registrarse" y los lleva a una página con un formulario de registro (formularios de gravedad). Me gustaría que la página (o la descripción en la parte superior del formulario) diga "Complete este formulario para registrarse en el viaje xxxx".
user3515
4

Según la respuesta del OP dentro de su pregunta:

Con su ayuda y algunas búsquedas en Google, armé un código corto que devuelve el valor de cualquier parámetro de URL. Aquí está:

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

Utilizo el shortcode como este para obtener el trip_typede mi URL:

[URLParam param='trip_type']
Ethan Jinks O'Sullivan
fuente
Esto me ayudó, gracias! ¿Cómo obtengo valores de los datos de publicación de formulario en lugar de la cadena de consulta?
Amjad
1

Aquí hay otra gran manera de lograr esto. ¡Esto no requerirá códigos cortos y actualizará automáticamente cada página que cree donde esté presente el parámetro "viaje"!

1) Navegue a su carpeta de temas y abra functions.php (o créelo si falta)

2) Agregue el siguiente código y guarde:

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

    }
?>

Este código usa el filtro the_content para anular cada vez que usa la función the_content () para imprimir la información de su blog. Detecta si la página solicitada es una sola página / publicación y no el archivo. Se le puede agregar lógica o anulaciones adicionales. Solo asegúrese de devolver $ contenido y cualquier mensaje que desee será devuelto a la pantalla.

¡Disfrutar!

WordPress Plugineer
fuente