Я хотел бы установить повар ie один раз в functions. php или header. php со значением, зависящим от того, найдена ли строка в URL-адресе. Вот мой код для этого, в настоящее время в моих функциях. php файл:
add_action('init', 'set_region_cookie', 1);
function set_region_cookie() {
if( is_admin() ) {
return;
}
$url_string = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
$six_months_from_now = time()+60*60*24*180;
// If user is loading the UK English version of the site, set the region cookie to gb, else set to us
if ( strpos($url_string,'en_gb') !== false ) {
setcookie('region', 'gb', $six_months_from_now, '/' );
} else {
setcookie('region', 'us', $six_months_from_now, '/' );
}
}
Однако я заметил, что если я загружаю страницу со следующим кодом внутри части шаблона, я не получаю сообщений, которые я ожидал на основе значения cook ie, пока я не обновлю sh страницу снова:
$product_posts_args = [
'post_type' => 'product',
'numberposts' => -1,
'tax_query' => [
'relation' => 'AND',
[
'taxonomy' => 'market_sector',
'field' => 'slug',
'terms' => [ $market_sector ]
],
[
'taxonomy' => 'region',
'field' => 'slug',
'terms' => [ $_COOKIE['region'] ]
],
],
'orderby' => 'menu_order',
'order' => 'ASC',
];
$products = get_posts( $product_posts_args );
$_COOKIE['region']
дает мне последнее значение cook ie, а не то, что должно быть обновление до в моих функциях. php и то, что я вижу в инструментах разработчика Chrome.
Как я могу установить повар ie до того, как он будет получен в моей части шаблона в $product_posts_args
?