首先,這不是我的代碼,并且在將它推進到這個階段時,我得到了很多幫助。我的問題是:隨機重定向一次可以完美運行,如果您在網站上單擊一段時間或清除瀏覽歷史記錄,它會再次運行。因此,就好像 rng 生成了一個隨機頁面,但之后每次都會記住該頁面并鏈接回該頁面。
正如您將在下面看到的,一個鏈接轉到一個名為“隨機頁面”的虛擬頁面,然后該頁面重定向到該站點上的一個隨機頁面(不包括第 5 行列出的一些頁面)。問題似乎是 rng 的種子沒有重置。我一直在和我的軟體工程師鄰居一起作業,我們嘗試了各種各樣的方法,但都沒有奏效。一方面,我們嘗試將第 7 行的 array_rand 更改為 mt_rand,但這會導致“重定向過多”錯誤。
原代碼是這樣的:
add_action('template_redirect', 'wpsf_random_page_redirect');
function wpsf_random_page_redirect()
{
if (is_page('random-page')) {
$excluded_pages = array(125, 126, 508, 510, 723, 987, 995, 1079, 1109, 1121, 1135, 1146, 1159, 1177, 1188, 1418, 1433);
$pages = get_pages(array('exclude' => $excluded_pages));
$random_page = $pages[array_rand($pages)];
$page_url = get_page_link($random_page);
wp_redirect($page_url);
exit;
}
}
我們嘗試添加第二個虛擬頁面,添加 srand(); 進入代碼或各種位置,例如虛擬頁面元描述等等。我們認為,我們最接近解決方案的嘗試是將 array_rand 更改為 mt_rand 并獲得太多重定向錯誤。
我環顧了整個網路,但無法弄清楚(部分原因是這一切對我來說大多是胡言亂語),但我的鄰居似乎也不知道,他知道他在做什么。任何想法將不勝感激,謝謝!
uj5u.com熱心網友回復:
這可能是一個快取問題,所以嘗試nocache_headers();像這樣添加
add_action('template_redirect', 'wpsf_random_page_redirect');
function wpsf_random_page_redirect()
{
if (is_page('random-page')) {
$excluded_pages = array(125, 126, 508, 510, 723, 987, 995, 1079, 1109, 1121, 1135, 1146, 1159, 1177, 1188, 1418, 1433);
$pages = get_pages(array('exclude' => $excluded_pages));
$random_page = $pages[array_rand($pages)];
$page_url = get_page_link($random_page);
nocache_headers();
wp_redirect($page_url);
exit;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/482757.html
