另一种对用户来说可能更不透明的方法是查看referer\\u url。这是一个服务器级变量,虽然不是100%可靠,但通常可以很好地指示某人单击您的链接时所处的位置。
如果有人复制了链接并将其发送给其他人,这将不起作用。
function wpse331937_custom_referer_title( $title ){
if ( wp_get_referer() ){
$host = parse_url( wp_get_referer(), PHP_URL_HOST );
switch ( $domain ){
case \'google.com\' :
case \'www.google.com\' :
$title = \'Hello Google Users\';
break;
case \'cincinnati.craigslist.org\' :
$title = \'Hello, Cincinnati!\';
break;
default :
break;
}
}
return $title;
}
add_filter( \'the_title\', \'wpse331937_custom_referer_title\', 10, 1 );
所以这里最大的优势是它是自动的,但正如我所说的,referer不会捕获所有案例。
另一个好处是,你不必把页面标题作为URL的一部分,这看起来有点尴尬。
通过以另一种方式使用相同的开关结构,您可以获得类似的好处,但没有referer块。例如:
function wpse331937_custom_title( $title ){
if ( isset( $_GET[\'ref\'] ) && $_GET[\'ref\'] ){
$ref = $_GET[\'ref\']
switch ( $ref){
case \'google\' :
$title = \'Hello Google Users\';
break;
case \'cin-craig\' :
$title = \'Hello, Cincinnati Craigslist Users!\';
break;
default :
break;
}
}
return $title;
}
add_filter( \'the_title\', \'wpse331937_custom_title\', 10, 1 );
现在你的URL看起来像
www.example。com什么的?ref=cin克雷格
而不是
www.example。com什么的?title=您好,%20Cincinnati%20Craigslist%20Users!