PHP:$ _SESSION []点击两次

时间:2013-09-26 06:39:50

标签: php wordpress session

我必须创建一个wordpress网站,我差不多完成了。现在我的菜单出了点问题。我必须检查单击了哪个菜单项(没有page_id =“”)。所以我找到了$_SESSION。我创建了2个模板:

模板1:产品 - 这就是我在products.php网站上的内容:

<?php
/*
Template Name: Products
*/

get_header();

$_SESSION['showActive'] = "product"; 

if (have_posts()) :while (have_posts()) : the_post(); ?>
    <div id="contentslideshow">
    <?php the_uds_billboard("billboard") ?>
    </div>
    <div class="entry"><?php the_content(); ?></div>

    <?php endwhile; endif; ?>

<?php get_footer(); ?>

我必须说有另一页的重定向。在此页面中,我在WP后端选择“模板:产品”。

然后我得到了另一个模板:主页:

<?php
/*
Template Name: Home
*/

get_header();

$_SESSION['showActive'] = "home"; 

if (have_posts()) :while (have_posts()) : the_post(); ?>
    <div id="contentslideshow">
    <?php the_uds_billboard("billboard") ?>
    </div>
    <div class="entry"><?php the_content(); ?></div>

    <?php endwhile; endif; ?>

<?php get_footer(); ?>

还有另一个重定向,我之前做过同样的事情。我在WP后端选择“Template:Home”。现在我在菜单div中查看header.php

<div id="lower">
            <a href="#" class="tab1<?php if($_SESSION['showActive'] == 'home'){ echo " tab-active"; } else{ echo ""; }  ?>">Home</a>
            <a href="#" class="tab3<?php if($_SESSION['showActive'] == 'product'){ echo " tab-active"; } else{ echo ""; }  ?>">Products</a>
        </div>

因此,如果$_SESSION是“product”,则应将类tab-active添加到“Products”菜单项。如果$_SESSION为“home”,则应将类tab-active添加到“Home”菜单项。

但是我必须在正确添加类的菜单项上单击两次。 有人可以给我一个暗示吗?

干杯

1 个答案:

答案 0 :(得分:1)

在页面上使用session时,你必须在页面的开头声明session_start()。因为你的问题是在第二次加载菜单时加载它的意思是你正在为会话错误的时间分配值。试着分配标题部分的值,就像我建议您在评论部分或菜单加载前的页面顶部。 检查页面ID或slug,然后设置会话值,如

if(pageid=='1' or slug =='home')
{ $session_value = 'home';}elseif(...) 

希望它会对你有所帮助。