我已经建立了一个站点,该站点为他们服务的每个区域都有一个主页。在 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);
}