URLでクエリ文字列を使用してページにコンテンツを表示する


9

ユーザーがどのページからアクセスしたかに基づいて、自分のページで何か言いたいことがあります。そのページへのリンクを次のように設定できます。

www.example.com/page?parameter=myparameter

このパラメーターにアクセスして、ページのコンテンツのどこかに表示できるようにする方法はありますか?


申し訳ありませんが、回答は一例であると理解していますが、そのままでは使用できないことに注意してください。XSS攻撃を防ぐために、ユーザー入力(クエリ文字列パラメーターなど)を無害化してエコーしないでください。これまでのすべての回答はXSSに対して脆弱であり、少なくとも警告を含める必要があります。
kubi

回答:


4

PHPセッションを使用したり、リクエストのクエリオブジェクトを調べたり、URLで$ _GETを使用したりできますが、機密情報には使用できません...

このようなもの;

URLから旅行名を取得する

$tripname = $_GET['tripname'];

見出しに使用してください。

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


ありがとう!これは機密情報ではありません。どうすればいいですか?
user3515 2013

これはあなたを助けるかもしれません:w3schools.com/php/php_get.asp
Dan

ありがとう!それをページに直接配置できますか、それともテンプレートファイルに入れる必要がありますか?
user3515 2013

必要な場所によって異なります。1つのテンプレートで実行されるページにのみ表示される場合は、そこに配置します。情報はどこから来て、どこに行くのでしょうか?
Dan

ストーリーは次のとおりです。私にはたくさんの「旅行ページ」があり、それぞれに私たちが実行した特定の旅行に関する情報があります。次に、「登録」をクリックすると、登録フォーム(重力フォーム)のページに移動します。ページ(またはフォームの上部にある説明)に「このフォームに記入して、xxx​​x旅行に登録する」と伝えてください。
user3515 2013

4

質問内のOPの回答によると:

あなたの助けといくつかのグーグルで、私は任意の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を返すことを確認してください。そうすれば、必要なメッセージが画面に返されます。

楽しい!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.