参数
$var
string必填-
要检索的变量键。
$default
mixed可选-
如果未设置查询变量,则返回的值。
默认:
''
返回
mixed 查询变量的内容。
更多信息
get_query_var()仅检索WP_Query识别的公共查询变量。这意味着,如果您使用自己的查询变量创建自己的自定义URL,get_query_var()将无法检索它们,除非进行进一步的工作(请参见下文)。
自定义查询变量
为了能够添加并使用您自己附加到URL的自定义查询变量(例如:“http://mysite.com/some_page/?my_var=foo“ – 例如使用add_query_arg())您需要将它们添加到WP_Query可用的公共查询变量中。它们是在WP_Query实例化时构建的,但幸运的是,在实际用于填充WP_Query的$query_vars属性之前,它们通过过滤器“query_vars”传递。
因此,要将新的自定义查询变量公开给WP_Query,只需挂钩到“query_vars”过滤器中,请将查询变量添加到过滤器传递的$vars数组中,并记住将数组作为过滤器函数的输出返回。见下文:
function themeslug_query_vars( $qvars ) { $qvars[] = 'custom_query_var'; return $qvars; } add_filter( 'query_vars', 'themeslug_query_vars' );
示例
获取当前页面页码
$paged = get_query_var( 'paged', 1 ); echo 'Currently Browsing Page ', $paged;
要获取静态首页(页面模板)上的当前页码,必须使用“page”查询变量:
$paged = get_query_var( 'page', 1 ); echo 'Currently Browsing Page ', $paged, ' on a static front page';
注意:查询变量‘page’是指在文章内容中包含 <!--nextpage--> 快速标签的单个分页文章或页面的页码。
源码
更新日志
版本 | 描述 |
---|---|
3.9.0 | 引入了$default 参数。 |
1.5.0 | 开始引入 |
使用示例
因为get_query_var()使用WP_Query类,该类只在循环中运行,所以此函数不能用于获取循环之外的url变量(例如WordPress管理页面)。
而是使用PHP典型的$_GET[‘var_name’]。
获取当前页码
<?php $paged = get_query_var( 'paged', 1 ); ?> <h1><?php printf( esc_html__( 'Currently browsing page %s', 'textdomain' ), $paged ); ?></h1>
要在静态首页(页面模板)上获取当前页码,必须使用
page
查询变量:<?php $page = get_query_var( 'page', 1 ); ?> <h1><?php printf( esc_html__( 'Currently browsing page %s on a static front page', 'textdomain' ), $page ); ?></h1>
注意:查询变量
page
是指内容中包含<!--nextpage-->
快速标签的单个分页文章或页面的页码。