использовать строку запроса в URL для отображения содержимого на странице

9

Я хотел бы сказать что-то на моей странице, основываясь на том, с какой страницы человек туда попал. Я могу настроить ссылку на эту страницу так:

www.example.com/page?parameter=myparameter

Есть ли способ, которым я могу получить доступ к этому параметру, чтобы я мог показать его на странице, где-то в моем контенте?

user3515
источник
Извините, я понимаю, что ответы являются примерами, но я считаю важным отметить, что они не должны использоваться как есть. Пользовательский ввод (например, параметры строки запроса) никогда не должен отображаться без анализа, чтобы предотвратить атаки XSS ! Все ответы до сих пор уязвимы для XSS и должны по крайней мере включать предупреждение.
Kubi

Ответы:

4

Вы можете использовать сеанс PHP, искать запрос в объекте запроса или использовать $ _GET с вашим URL, но это не для конфиденциальной информации ...

Что-то вроде этого;

Получите название поездки от URL

$tripname = $_GET['tripname'];

Используйте это в своем заголовке;

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

Дэн
источник
Спасибо! Это не конфиденциальная информация. Как бы я поступил так?
user3515
Это может вам помочь: w3schools.com/php/php_get.asp
Дан,
Спасибо! Могу ли я поместить это прямо на страницу, или это нужно добавить в файл шаблона?
user3515
Зависит от того, где вам это нужно - если он отображается только на странице, которая работает по одному шаблону, вы бы поместили его туда. Откуда поступает информация и где она в конечном итоге?
Дан
История такая: у меня есть много «страниц поездок», на каждой из которых есть информация об определенной поездке, которую мы проводим. Затем они нажимают кнопку «зарегистрироваться», и она переносит их на страницу с регистрационной формой (гравитационные формы). Мне бы хотелось, чтобы на странице (или в описании вверху формы) говорилось: «Заполните эту форму, чтобы зарегистрироваться для поездки в хххх».
user3515
4

Согласно ответу ОП на свой вопрос:

С вашей помощью и немного Google, я собрал шорткод, который возвращает значение любого параметра URL. Вот:

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

Я использую шорткод, как это, чтобы получить trip_typeиз моего URL:

[URLParam param='trip_type']
Итан Джинкс О'Салливан
источник
Это помогло мне, спасибо! Как получить значения из данных публикации формы вместо строки запроса?
Амджад
1

Вот еще один отличный способ сделать это. Это не требует шорткодов и будет автоматически обновлять каждую страницу, которую вы создаете, где присутствует параметр "trip"!

1) Перейдите в папку вашей темы и откройте файл functions.php (или создайте его, если он отсутствует)

2) Добавьте следующий код и сохраните:

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

    }
?>

Этот код использует фильтр the_content для переопределения каждый раз, когда вы используете функцию the_content () для печати информации вашего блога. Он определяет, является ли запрошенная страница отдельной страницей / публикацией, а не архивом. Дополнительная логика или переопределения могут быть добавлены к нему. Просто убедитесь, что вы возвращаете $ content, и любое сообщение, которое вы пожелаете, будет возвращено на экран.

Наслаждайтесь!

WordPress Plugineer
источник