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


9

Я хотів би сказати щось на своїй сторінці, виходячи з того, з якої сторінки потрапила людина. Я можу налаштувати посилання на цю сторінку таким чином:

www.example.com/page?parameter=myparameter

Чи є спосіб я отримати доступ до цього параметра, щоб я міг його відображати на сторінці, десь у моєму вмісті?


Вибачте, я розумію, що відповіді - це приклади, але я вважаю важливим зазначити, що вони не повинні використовуватися як є. Введення користувача (як параметри рядка запиту) ніколи не повинно перегукуватися з несанкціонованим режимом, щоб запобігти атакам XSS ! Усі відповіді на даний момент вразливі до XSS і повинні принаймні містити попередження.
кубі

Відповіді:


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
Дену

Дякую! Чи можу я поставити це прямо на сторінку, чи потрібно зайти у файл шаблону?
користувач3515

Залежить, де вам це потрібно - якщо він відображається лише на сторінці, що працює за одним шаблоном, ви б помістили його туди. Звідки береться інформація і де вона закінчиться?
День

Історія така: у мене дуже багато «сторінок подорожей», кожна з яких містить інформацію про певну поїздку, яку ми проводимо. Потім вони клацають «зареєструватися», і він переносить їх на сторінку з реєстраційною формою (гравітаційні форми). Я хотів би, щоб на сторінці (або в іншому описі вгорі форми) було сказано "Заповніть цю форму, щоб зареєструватися на поїздку xxxx".
користувач3515

4

Відповідно до відповіді ОП у їхньому питанні:

З вашою допомогою та деяким Googling я зібрав короткий код, який повертає значення будь-якого параметра 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) Перейдіть до папки теми та відкрийте function.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;

    }
?>

Цей код використовує фільтр_content для переосмислення кожного разу, коли ви використовуєте функцію the_content () для друку інформації свого блогу. Він визначає, чи потрібна сторінка є однією сторінкою / публікацією, а не архівом. До нього можуть бути додані додаткові логіки або зміни. Просто переконайтеся, що ви повертаєте $ вміст, і будь-яке повідомлення, яке ви хочете, буде повернене на екран.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.