第一次在這裏提問問題。如果用戶訪問過某些頁面,我正在構建一個網頁並希望更改頁面上的文本。根據訪問的網址個性化Wordpress會話
我最初的想法是在會話中創建一個數組,將每個url記錄爲其像0123,這樣的東西,如果這是我從頭開始構建的網站,則該數組可能會工作。但是...因爲該網站是建立在WordPress的我不是100%如何去做那裏系統內。
第一次在這裏提問問題。如果用戶訪問過某些頁面,我正在構建一個網頁並希望更改頁面上的文本。根據訪問的網址個性化Wordpress會話
我最初的想法是在會話中創建一個數組,將每個url記錄爲其像0123,這樣的東西,如果這是我從頭開始構建的網站,則該數組可能會工作。但是...因爲該網站是建立在WordPress的我不是100%如何去做那裏系統內。
現在,這是我建議你做的。導航到你的主題並打開文件functions.php 然後找到一個合適的地方在文件的任何地方(該文件的底部不會那麼奇怪)。 然後,添加以下功能:
<?php
// FILE-NAME: functions.php <== LOCATED AT THE ___/wp-content/themes/your-theme-name
add_action("init", "initiatePageLogging");
function initiatePageLogging(){
// START THE SESSION IF IT HAS NOT BEEN STARTED
// THIS WOULD BE USED TO SHARE DATA ACROSS YOUR PAGES...
if (session_status() == PHP_SESSION_NONE || session_id() == '') {
session_start();
}
// CHECK THAT THE SESSION VARIABLE FOR OUR PAGE-LOGGING IS THERE
// IF NOT CREATE IT
if(!isset($_SESSION['visitedPages'])){
// IT DOES NOT EXIST SO WE CREATE IT & INITIALIZE IT AS AN EMPTY ARRAY
$_SESSION['visitedPages'] = array();
}
// NO NEED TO KEEP THE SESSION ARRAY $_SESSION['visitedPages'] TOO LONG
// SO WE TRIM IT OUT CONDITIONALLY TO KEEP IT UNDER CHECK
if(count($_SESSION['visitedPages']) >= 10){
// WE REMOVE ABOUT 7 ELEMENTS FROM THE BEGINNING OF THE ARRAY
// LEAVING JUST THE LAST 3 - NOW THAT'S COOL...
$arrVisitedPages = $_SESSION['visitedPages'];
array_splice($arrVisitedPages, 0, 7);
// RE-DEFINE THE $_SESSION['visitedPages'] ARRAY
$_SESSION['visitedPages'] = $arrVisitedPages;
}
}
function getLastVisitedPage(){
$lastVisitedPage = get_site_url() . $_SERVER['REQUEST_URI']; //<== FALL BACK TO THE CURRENT PAGE IF WE HAVE AN ISSUE.
if(isset($_SESSION['visitedPages']) && is_array($_SESSION['visitedPages'])){
$arrVP = $_SESSION['visitedPages'];
$intArrVPLength = count($arrVP);
$diff = ($intArrVPLength - 2);
$lastVisitedPage = ($intArrVPLength > 1) ? $arrVP[$diff] : $lastVisitedPage;
}
return $lastVisitedPage;
}
?>
現在,第1部分完成了!在你的主題裏面,你仍然可以找到一個叫做的文件。header.php 這是我們必須進行日誌記錄的地方,因爲默認情況下Word-Press中的每個頁面都會加載這個頁面(除非另有配置)。 在非常,非常頂部該文件的 - 我的意思是1號線,這樣做:
<?php
// FILE-NAME: header.php <== LOCATED AT THE ___/wp-content/themes/your-theme-name
// BUILD THE URL OF THE CURRENT PAGE & PUSH IT TO THE SESSION VARIABLE...
$thisPage = get_site_url() . $_SERVER['REQUEST_URI'];
$_SESSION['visitedPages'][] = $thisPage;
// THAT'S ALL! BELOW HERE, THE ORIGINAL CONTENT OF THE header.php FILE CONTINUES...
?>
一件事!我們現在如何使用$ _SESSION ['visitedPages']變量? 否則,我們如何知道使用$ _SESSION ['visitedPages']變量最後一次訪問哪個頁面?
現在在每個文件如(page.php,index.php,category.php,taxonomy.php等);您現在可以通過做這樣的事情找出最後訪問的網頁:
<?php
// FILE-NAME: ANY FILE IN THE THEME LIKE: page.php, index.php, category.php, taxonomy.php, etc
$lastVisitedPage = getLastVisitedPage();
// THAT'S IT, PAL...
?>
我希望這有助於....確實不適合這麼一個問題,因爲它主要是基於認爲你如何
乾杯,這正是我需要的東西。 – CavemanDan
」 d解決這個問題也是一個非常廣泛的問題。 – Epodax
@Epodax,這是基於意見的?他只是問如何在wordpress中實施它。 – SZenC
@SZenC因爲最有可能有多種方式來做OP想要的東西,而且這將歸結爲每個人如何喜歡做某些事情。但即使我們忽略了這一點,它仍然是一個廣泛的問題/問我們「如何」質疑是否是SO的主題。 – Epodax