【问题标题】:PHP: $_SESSION[] click twicePHP:$_SESSION[] 点击两次
【发布时间】:2013-09-26 06:39:49
【问题描述】:

我必须创建一个 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 后端选择“模板:主页”。现在我在菜单 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 是“产品”,则应将tab-active 类添加到“产品”菜单项。如果$_SESSION 是“home”,则应将tab-active 类添加到“Home”菜单项。

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

干杯

【问题讨论】:

  • 为什么不使用默认的 wordpress 菜单?他们将保留当前活动的菜单详细信息。
  • 这是一个自制的模板,这里解释起来有点复杂,和代码没有关系:)
  • 由于您正在使用会话,因此您需要在所有页面中将session_start(); 作为打开&lt;?php 标签下的第一行,因为它没有发布在您的代码中。
  • 在标头中分配会话值而不是在模板上。我认为您是在页面加载后分配值。尝试分配 $_SESSION['showActive'] = "home";在 header.php 上
  • @Fred-ii- Mh,您的意思是在模板代码中还是在标头中?

标签: php wordpress session


【解决方案1】:

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

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

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多