2010-08-24 3 views
3

У меня есть меню, когда пользователь нажимает на любой пункт меню, я хочу взять их на той же странице, но я хочу по-разному стилизовать страницу в зависимости от пункта меню. .. для ex: измените цвет фона, чтобы быть другим. Каков наилучший способ сделать это? Я думал, что когда они нажимают на элемент меню, можно установить переменную или установить переменную сеанса.Передача данных между страницами Wordpress

Есть ли более простой способ сделать это? Имеет ли Wordpress что-либо встроенное в архитектуру, чтобы сделать это проще?

+0

http://stackoverflow.com/questions/1719087/multi-dimensional-array-post-from-form/5070123#507 – cregox

ответ

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

Тогда вы можете просто запросить для этого в page template так:

<?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; 
    } 
?> 

Если вы думаете параметры строки запроса уродливы, вы можете использовать информацию о пути i но это требует, чтобы вы создали специальный случай rewrite rule, который делает информацию о пути «невидимой» для WordPress, поэтому она не думает, что это пуля страницы. Независимо от того, хотите ли вы этого или нет, это зависит от того, как ваша постоянная ссылка в WordPress.

+0

Я также нашел это после большего поиска и использует аналогичный подход. http://wordpress.org/support/topic/get-variables-on-custom-admin-pages. В нем говорится, что плагины, которым необходимо передавать данные между страницами, также используют ваш метод GET. – milesmeow

-2
  1. вы должны создать свою страницу в качестве шаблона в.ч. (если вы не создали уже) (see this)
  2. вы правы с переменной сеанса. передать переменную на эту страницу и обработать ее там. есть немного программирования ...

Я не знаю другого способа делать то, что вы просите.

Смежные вопросы