PHP,$ _GET ["变量"]仅在具有特定值时才有效

时间:2014-07-15 15:04:24

标签: php wordpress variables

我无法理解这一点。下面的代码可以很好地从url获取变量“s”并显示h1,但我发现只有变量设置为某些字符才有效。如果变量设置为“l”,“m”或“n”,则它可以工作。但它在大多数情况下都不起作用,包括将变量设置为“w”,“wind”,“nn”或甚至是“sfda”之类的随机字母集合。

if ($_GET["s"]=='l'){?>
    <h1>Services for Companies</h1><?php
}

当它无法正常工作时,Wordpress会显示“抱歉,无法找到该页面”页面。

3 个答案:

答案 0 :(得分:2)

如果您只想检查变量是否存在,可以使用isset

if( isset( $_GET['s'] ) ) {
    echo 'Yes, this variable exists.';
}

但在Wordpress中,您应该使用the get_query_var() function来访问查询参数。此功能包含一些基本的安全检查。

if( get_query_var( 's' ) ) {
    echo 'Yes, this variable exists.';
}

请注意,有多个GET变量已在Wordpress中使用。有关完整列表,请参阅"WordPress Query Vars"

另请参阅:How to pass extra variables in URL with Wordpress

答案 1 :(得分:0)

你可以尝试:

GET和POST方法

if(isset($_REQUEST['s'])){
echo 's ='.$_REQUEST['s'];
}

或只获取方法

if(isset($_GET['s'])){
echo 's='.$_GET['s'];
}

答案 2 :(得分:0)

WordPress使用查询变量来执行某些功能。在这种情况下,s是正常的WordPress搜索查询。我建议您使用非常具体的网址查询,例如headerquerytitlequery,以避免任何冲突。