comment_author_ 個性化歡迎function welcome_msg() {
// 1. 來源解析
$referer = $_SERVER['HTTP_REFERER'] ?? '';
$host = parse_url($referer, PHP_URL_HOST) ?? '';
if (strpos($host, 'www.') === 0) $host = substr($host, 4);
// 2. 來源分類輸出
if (empty($referer)) { ... }
elseif (preg_match('/baidu/i', $referer)) { ... }
elseif (preg_match('/google/i', $referer) && !preg_match('/reader/', $referer)) { ... }
// ... 其他來源
elseif (isset($_COOKIE["comment_author_".COOKIEHASH])) {
echo "Howdy, {$_COOKIE[...]} 歡迎回來";
} else { echo "歡迎來自 {$host} 的朋友"; }
// 3. 應用過濾器 (插件擴展點)
echo apply_filters('welcome_msg', '');
}
function killIE($msg) {
$ua = $_SERVER['HTTP_USER_AGENT'];
$cookieKey = 'alert_ie_visitor_'.COOKIEHASH;
if (preg_match('/MSIE\s6/i', $ua) && !isset($_COOKIE[$cookieKey])) {
$msg .= '您用的是 IE6,不符合標準... 升級 IE8 或換瀏覽器';
setcookie($cookieKey, 'ie6', time()+20); // 20秒頻繁提示
}
elseif (preg_match('/MSIE\s7/i', $ua) && !isset($_COOKIE[$cookieKey])) { ... 3天 }
elseif (preg_match('/MSIE\s8/i', $ua) && !isset($_COOKIE[$cookieKey])) { ... 100天 推薦 Chrome/Firefox }
return $msg;
}
add_filter('welcome_msg', 'killIE');
function alert_commentator($msg) {
if ($user_ID) return $msg; // 管理員豁免
$key = 'comment_author_visit_times_'.COOKIEHASH;
if (!isset($_COOKIE[$key]) || $_COOKIE[$key] < 6) return $msg;
$name = $_COOKIE['comment_author_'.COOKIEHASH] ?? '';
$msg = $name ? "嗨 $name 來很多次沒留言!" : "新/老朋友來很多次沒留言!";
return $msg;
}
add_filter('welcome_msg', 'alert_commentator');
function setcookie_for_alert_commentator() {
if (is_bot() || $user_ID) return;
$key = 'comment_author_visit_times_'.COOKIEHASH;
$times = (int)($_COOKIE[$key] ?? 0) + 1;
setcookie($key, $times, time()+300*86400, COOKIEPATH, COOKIE_DOMAIN);
if ($times >= 7) setcookie($key, -2, time()+300*86400, COOKIEPATH, COOKIE_DOMAIN); // 歸零重來
}
add_action('init', 'setcookie_for_alert_commentator');
function setcookie_for_ie() {
if (isset($_COOKIE['alert_ie_visitor_'.COOKIEHASH])) return;
$ua = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/MSIE\s6/i', $ua)) setcookie(..., time()+20); // 20秒
elseif (preg_match('/MSIE\s7/i', $ua)) setcookie(..., time()+3*86400); // 3天
elseif (preg_match('/MSIE\s8/i', $ua)) setcookie(..., time()+100*86400); // 100天
}
add_action('init', 'setcookie_for_ie');
is_bot() 排除爬蟲干擾統計ua-parser 庫,正則維護成本高SameSite=Lax、Secure、HttpOnly這是一個「有溫度」的用戶體驗功能,細節決定成敗。