GC_Customize_Manager::add_state_query_params()
最后更新于:2021-11-27 00:48:27
GC_Customize_Manager::add_state_query_params( string$url)Add customize state query params to a given URL if preview is allowed.
参数
- $url
-
(string) (Required) URL.
响应
(string) URL.
源文件
文件: gc-includes/class-gc-customize-manager.php
public function add_state_query_params( $url ) {
$parsed_original_url = gc_parse_url( $url );
$is_allowed = false;
foreach ( $this->get_allowed_urls() as $allowed_url ) {
$parsed_allowed_url = gc_parse_url( $allowed_url );
$is_allowed = (
$parsed_allowed_url['scheme'] === $parsed_original_url['scheme']
&&
$parsed_allowed_url['host'] === $parsed_original_url['host']
&&
0 === strpos( $parsed_original_url['path'], $parsed_allowed_url['path'] )
);
if ( $is_allowed ) {
break;
}
}
if ( $is_allowed ) {
$query_params = array(
'customize_changeset_uuid' => $this->changeset_uuid(),
);
if ( ! $this->is_theme_active() ) {
$query_params['customize_theme'] = $this->get_stylesheet();
}
if ( $this->messenger_channel ) {
$query_params['customize_messenger_channel'] = $this->messenger_channel;
}
$url = add_query_arg( $query_params, $url );
}
return $url;
}