Как загрузить другую главную страницу в Wordpress, если установлен cookie? - PullRequest
0 голосов
/ 30 ноября 2011

Я пытаюсь выяснить, как написать функцию или что-то подобное, чтобы Wordpress показывал пользователю 2 разные страницы в зависимости от файла cookie. Если файл cookie установлен, они видят другую полосу. Обе страницы должны быть WordPress, то есть редактируемыми из WordPress, я просто хочу изменить page_id в зависимости от того, установлен cookie или нет

  1. Установить Cookie, если пользователь не был на сайте ранее
  2. Показать ему блог
  3. Если файл cookie уже установлен, покажите user page_id = 9

Например, если cookie установлен, они видят page_id = 9, а если cookie не установлен, они видят блог. Нет регистрации пользователя, просто случайное перенаправление на случай, если PHP cookie установлен

Я не могу найти следующее даже после поиска в Google.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2011

Поместите верхнюю часть заголовка или на страницу индекса.

if ( isset( $_COOKIE['cookie'] ) ) {
    header( "Location: /?page_id=9" );
}
else {
    setcookie(...);
}

проверьте наличие cookie, если оно существует, перенаправьте, в противном случае установите cookie

ПРИМЕЧАНИЕ. Это будет толькоРаботайте на странице шаблона, например, если ваш шаблон по умолчанию (целевая страница) - «Домой», поместите этот код в свой домашний шаблон.Он не будет работать в header.php или index.php в корневом каталоге

0 голосов
/ 30 ноября 2011

Вы можете сделать редирект JavaScript.Не проверено, но это должно работать.Ссылка на файл cookie от Quirksmode .

createCookie('beenhere', '1', 1);
if (readCookie('beenhere') == '1' && window.location.pathname == '' ) {
   window.location = window.location.hostname + "/page_id=9"
}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...