40

URL を使用して WordPress サイトにパラメータを渡そうとしています - たとえば:

www.fioriapts.com/?ppc=1URLになります。

functions.php ファイルに関数を書き込もうとしていますが、WordPress でパラメーターを抽出する方法については理解できません。関数を使用して URL にパラメーターを追加する方法について多くの例を見つけていますadd_query_arg()が、パラメーターを抽出する方法については何も見つかりませんでした。助けてくれてありがとう。

4

4 に答える 4

78

URLを介してパラメーターを渡す場合、GETパラメーターとして値を取得できます。

これを使って:

$variable = $_GET['param_name'];

//Or as you have it
$ppc = $_GET['ppc'];

ただし、最初に変数をチェックする方が安全です。

if (isset($_GET['ppc'])) {
  $ppc = $_GET['ppc'];
} else {
  //Handle the case where there is no parameter
}

GET / POSTパラメータについて少し読んでください:http://php.net/manual/en/reserved.variables.get.php

編集:私はこの答えがそれを作った後まだ多くのトラフィックを得るのを見ます。この回答に添付されているコメント、特にこの目標を安全に達成するWordPress関数の詳細を説明する@emcからの入力をお読みください。

于 2012-11-30T20:34:08.837 に答える
1

この機能を試すことができます

/**
 * Gets the request parameter.
 *
 * @param      string  $key      The query parameter
 * @param      string  $default  The default value to return if not found
 *
 * @return     string  The request parameter.
 */

function get_request_parameter( $key, $default = '' ) {
    // If not request set
    if ( ! isset( $_REQUEST[ $key ] ) || empty( $_REQUEST[ $key ] ) ) {
        return $default;
    }

    // Set so process it
    return strip_tags( (string) wp_unslash( $_REQUEST[ $key ] ) );
}

これが関数で起こっていることです

ここで 3 つのことが起こっています。

  • まず、リクエストキーが存在するかどうかを確認します。そうでない場合は、デフォルト値を返します。
  • 設定されている場合は、まず wp_unslash を実行してスラッシュを削除します。stripslashes_deep よりも優れている理由をここでお読みください。
  • 次に、単純な strip_tags を実行して値をサニタイズします。パラメーターからリッチ テキストが必要な場合は、wp_kses または同様の関数を使用して実行します。

このすべての情報に加えて、関数の背後にある考え方に関する詳細情報は、このリンクhttps://www.intechgrity.com/correct-way-get-url-parameter-values-wordpress/にあります。

于 2018-02-20T20:55:25.157 に答える