Как показать пользователям последние посещенные страницы в wp / buddypress? - PullRequest
0 голосов
/ 12 августа 2011

Я пытаюсь выяснить, как я могу показать последние 3-5 страниц моего сайта, которые посетил человек.Я провел поиск и не смог найти плагин WP, который бы делал это, если кто-то знает, пожалуйста, укажите мне в этом направлении :), если нет, мне придется написать его с нуля, и вот где я 'Мне понадобится помощь.

Я пытался понять БД и как она работает.Я предполагаю, что это то, где волшебство случится с PHP, если только не существует опции javascript, использующей куки для этого.

1 Ответ

3 голосов
/ 18 августа 2011

Если бы я закодировал такой плагин, я бы использовал сеансовые куки для заполнения массива с помощью array_unshift () и array_pop (). это было бы так просто, как:

$server_url = "http://mydomain.com";
$current_url = $server_url.$_SERVER['PHP_SELF'];
$history_max_url = 5; // change to the number of urls in the history array

//Assign _SESSION array to variable, create one if empty ::: Thanks to Sold Out Activist for the explanation!
$history = (array) $_SESSION['history'];

//Add current url as the latest visit
array_unshift($history, $current_url);
//If history array is full, remove oldest entry
if (count($history) > $history_max_url) {
    array_pop($history);
}
//update session variable
$_SESSION['history']=$history;

Теперь я написал это на лету. Там могут быть синтаксические ошибки или опечатки. Если такая ошибка появляется, просто поставьте уведомление, и я ее исправлю. Целью этого ответа является в основном сделать доказательство концепции. Вы можете адаптировать это по своему вкусу. Обратите внимание, что я предполагаю, что session_start () уже есть в вашем коде.

Надеюсь, это поможет.

===============

Эй! Извините за поздний ответ, я был за городом пару дней! :)

Это дополнение для ответа на ваш запрос на решение для печати с тегами LI

Вот что я бы сделал:

print "<ol>";
foreach($_SESSION['history'] as $line) {
     print "<li>".$line.</li>";
}
print "</ol>"; 

Все просто. Вы должны прочитать цикл foreach здесь: http://www.php.net/manual/en/control-structures.foreach.php

Что касается session_start (); поместите его перед тем, как использовать переменные $ _SESSION.

Надеюсь, это помогло! :)

...