サービスを提供する各エリアのホームページを持つサイトをセットアップしました。Chrome および Safari では、サービス エリア タブに移動してサービス エリアを選択すると、そのエリアのホームページに移動します。
この時点で、ユーザーが選択したエリアを保存するセッションが開始され、サイトの別のページにアクセスすると、選択した場所のヘッダーに場所固有の広告が表示されるか、ホームを選択すると、選択したエリアのホームにリダイレクトされますページ。
Firefox の問題は、サービス エリアを選択してそのエリアのホームページに移動すると、メニューから別のページを選択すると、設定されたサービス エリアが別のエリアに変更されることです。これは、カスタム ホームページから別のメニュー ページに移動した場合にのみ発生します。
これはセッションを設定するコードです:
session_start();
$cur_url = dd_cur_page_url();
if ('local_home_pages' == get_post_type() && $cur_url != $_SESSION['dd_location']['home']) {
$cur_url_mod = str_replace('carpet-cleaning_', '', $cur_url);
$url_parts = explode('/', $cur_url_mod);
$url_parts_count = count($url_parts);
$cur_page = $url_parts[$url_parts_count - 2];
$location_parts = explode('_', $cur_page);
$place = trim(str_replace('-', ' ', $location_parts[0]));
$state = trim(str_replace('-', ' ', substr($location_parts[1], 2)));
$state_parts = explode('-', $location_parts[1]);
$state_abv = trim($state_parts[0]);
$county = trim(str_replace('-', ' ', $location_parts[2]));
$_SESSION['dd_location'] = array(
'home' => $cur_url,
'place' => $place,
'state' => $state,
'state_abv' => $state_abv,
'county' => $county);
}
これは、一般的なホームページでのみ実行されるリダイレクト コードです。
session_start();
$cur_url = dd_cur_page_url();
if (is_front_page() && isset($_SESSION['dd_location']['home'])) {
$location = $_SESSION['dd_location']['home'];
header('Location:' . $location);
}