当前浏览:首页 / WordPress函数 / get_query_var()

get_query_var( string $var, mixed $default = '' ): mixed

检索WP_Query类中查询变量的值

querymore...

var


参数

$varstring必填
要检索的变量键。
$defaultmixed可选
如果未设置查询变量,则返回的值。

默认:''


返回

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开始引入

使用示例

  • 示例1

    因为get_query_var()使用WP_Query类,该类只在循环中运行,所以此函数不能用于获取循环之外的url变量(例如WordPress管理页面)。

    而是使用PHP典型的$_GET[‘var_name’]。

  • 示例2

    获取当前页码

    <?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--> 快速标签的单个分页文章或页面的页码。