sites_pre_query

过滤钩子
apply_filters_ref_array( 'sites_pre_query', array( $site_data, &$this )
参数
  • (array|int|null) $site_data Return an array of site data to short-circuit WP's site query, the site count as an integer if `$this->query_vars['count']` is set, or null to run the normal queries.
    Required:
  • (WP_Site_Query) $query The WP_Site_Query instance, passed by reference.
    Required:
定义位置
相关勾子
terms_pre_querynetworks_pre_queryfound_sites_queryparse_site_querythe_search_query
相关方法
the_search_queryis_main_querysanitize_title_for_querywp_reset_querysite_urlregister_block_core_query
引入
5.6.0
弃用
-

sites_pre_query动作。sites_pre_query动作是在WordPress中执行从多站点网络中检索站点的查询之前触发的。这个动作可以用来修改查询参数或在查询执行前执行其他动作。

在进行get_sites查询之前过滤网站数据。

返回一个非空值以绕过WordPress的默认站点查询。

这个过滤器的预期返回类型取决于请求查询变量中传递的值:

  • $this->query_vars['count'] 被设置时,该过滤器应该返回网站计数为整数。
  • 'ids' === $this->query_vars['fields'] 时,过滤器应该返回一个网站ID的数组。
  • 否则,过滤器应该返回一个WP_Site对象的数组。

注意,如果过滤器返回一个网站数据数组,它将被分配到当前WP_Site_Query实例的 sites 属性。

我们鼓励需要分页信息的过滤函数设置WP_Site_Query对象的 found_sites 和 max_num_pages 属性,通过引用传递给过滤器。如果WP_Site_Query不执行数据库查询,它将没有足够的信息来自行生成这些值。

$site_data = apply_filters_ref_array( 'sites_pre_query', array( $site_data, &$this ) );

常见问题

FAQs
查看更多 >