0

wordpress のテーマを設計していますが、URL にクエリを追加すると、問題が発生します。

どちらの状況でも、ファイル class-wp.php の WP->parse_request(..) で $_GET['var'] を使用します。

URLが次のような場合に機能します "loscalhost/?var=123", $_GET['var'] return 123;

URLが「localhost/category/test/?var=123」の場合は動作せず、$_GET['var']はnullを返します。

誰か教えてくれませんか?

4

2 に答える 2

1

WordPress は、予期しない URL クエリ パラメータを無視するように設計されています。クエリ変数を使用する場合は、WordPress にそれを期待するように通知する必要があります。あなたの場合:

function filter_add_query_vars($query_vars)
{   
    $query_vars[] = 'var'; 
    return $query_vars;
}
add_filter( 'query_vars', 'filter_add_query_vars' );

コードをテーマの functions.php に入れます

于 2013-03-25T16:38:47.960 に答える
0

これはずさんな解決策です: $_GET を使用して、wp-blog-header ファイルの「localhost/category/test/?var=123」などの URL の変数を受け取ることもできるため、$_SERVER を使用できます。 ['REQUEST_URI'] で URL 全体を取得するため、wp-blog-header.php のコードを変更します。私が変える

wp();

することが:

$url_array = explode('?', $_SERVER['REQUEST_URI']);
wp($url_array[1]);

wp() は追加のクエリも受け取るため、機能します。

しかし、なぜ $_GET が機能しないのかまだ理解できていないので、有効な説明を待ちます...

于 2013-03-26T02:37:07.823 に答える