iT邦幫忙

1

Wordpress $_GET['page']失效一問

我第一次用
$page = isset($_GET['page']) ? $_GET['page'] : 1;
var_dump($page);//返回float(0)
我第二次用
$paged = (get_query_var('paged'))? get_query_var('paged') : 1;
var_dump($page); 返回int(1)

想請教一下為什麼第一次的會返回0呢.....尷尬
小白自學 不勝感激!~!

2 個回答

4
㊣浩瀚星空㊣
iT邦超人 1 級 ‧ 2020-09-07 13:04:43
最佳解答

isset 是判斷這個變數是否有存在。
而 get_query_var 則是幫你找目前的傳送get是否有變數。

看起來不太一樣。但實際結果會如下

當你是傳 ?page= 這樣的連結。

則用isset判斷是會為真的 。
但用 get_query_var 則會是偽值。

第一個isset會直接取page這個空值。數值化後就會為0。

要很注意了解isset的用法。它不是判斷空值跟真偽值用的。
它只是判斷變數是否有存在。就算這個變數是空值。也算存在。

2
海綿寶寶
iT邦大神 1 級 ‧ 2020-09-07 09:44:06

get_query_var() only retrieves public query variables that are recognized by WP_Query. This means that if you create your own custom URLs with their own query variables, get_query_var() will not retrieve them without some further work (see below).

get_query_var 不完全等於 $_GET

詳情請看Wordpress 官方說明

我要發表回答

立即登入回答