0

我必须创建一个 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 后端选择“模板:主页”。现在我签header.php入菜单 div:

<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是“产品”,则应将类添加tab-active到“产品”菜单项。如果$_SESSION是“家”,它应该将类添加tab-active到“家”菜单项。

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

干杯

4

1 回答 1

1

在页面上使用会话时,您必须在页面session_start()的开头声明。因为您的问题是在第二次页面加载时选择了菜单,这意味着您正在为会话错误的时间分配值。尝试像我建议的那样在标题部分分配值您在菜单加载之前的评论部分或页面顶部。检查页面 id 或 slug 然后设置会话值,如

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

希望它会帮助你。

于 2013-09-26T09:01:12.680 回答