在Wordpress'页面'之间传递数据

mil*_*eow 3 wordpress session-variables environment-variables

我有一个菜单,当用户点击任何菜单项时,我想将它们带到同一页面,但我想根据菜单项不同地设置页面样式...例如:将背景颜色更改为不同.最好的方法是什么?我在想,当他们点击一个菜单项时,可以设置一个变量或者可以设置一个会话变量.

有更简单的方法吗?Wordpress是否在构建中内置了任何内容以使其变得简单?

Asb*_*erg 5

不要使用会话.由于HTTP是无状态协议,因此应尽量避免使用会话.由于用户点击链接,因此只有通过链接传达您所追踪的信息才有意义.只需在URL中传递您想要的任何数据,例如作为查询字符串参数:

  1. http://example.com/page_x?bgcolor=1
  2. http://example.com/page_x?bgcolor=2
  3. http://example.com/page_x?bgcolor=3

然后你可以在页面模板中查询,如下所示:

<?php
  /*
  Template Name: Varying Background Color Template
  */

  $bgcolor = $_GET['bgcolor'];

  switch ($bgcolor) {
    case 1:
      // Change the background to color 1
      break;

    case 2:
      // Change the background to color 2
      break;

    case 3:
      // Change the background to color 3
      break;
  }
?>
Run Code Online (Sandbox Code Playgroud)

如果您认为查询字符串参数很难看,您可以使用路径信息,但这需要您创建一个特殊的案例重写规则,使路径信息对WordPress"不可见",因此它不认为它是页面的slug.您是否想要或需要这取决于您在WordPress中的永久链接配置的方式.