我会让Google Analytics之类的东西通过事件跟踪之类的东西为您进行跟踪。看看Yoast的Google Analytics插件,它会让你很容易做到这一点。
否则Redirection 有利于创建重定向。当然,你可以看到每个被点击的次数。我已经使用这个插件多年了,它非常好。
如果要自动执行某些操作,则需要创建自定义重写规则和查询变量:
<?php
add_action( \'init\', \'wpse36168_add_rewrite_rule\' );
/**
* Add our rewrite rule
*/
function wpse36168_add_rewrite_rule()
{
add_rewrite_rule(
\'^go/(.*?)$\',
\'index.php?go=$matches[1]\',
\'top\'
);
}
add_filter( \'query_vars\', \'wpse36168_add_go_var\' );
/**
* Tell WP not to strip out or "go" query var
*/
function wpse36168_add_go_var( $vars )
{
$vars[] = \'go\';
return $vars;
}
然后钩住
template_redirect
如果捕获到该查询变量,则将用户抛出到其他URL。
<?php
add_action( \'template_redirect\', \'wpse36168_catch_external\' );
/**
* Catch external links from our "go" url and redirect them
*/
function wpse36168_catch_external()
{
if( $url = get_query_var( \'go\' ) )
{
wp_redirect( esc_url( $url ), 302 );
exit();
}
}
最后,你可以
the_content
将所有外部链接自动替换为
yoursite.com/go/someurlhere.com/asdf
链接。
<?php
add_filter( \'the_content\', \'wpse36168_replace_links\', 1 );
/**
* Replace external links with our "go" links
*/
function wpse36168_replace_links( $content )
{
$content = preg_replace_callback( \'%<a.*?href="(.*?)"[^<]+</a>%i\', \'wpse36168_maybe_replace_links\', $content );
return $content;
}
function wpse36168_maybe_replace_links( $matches )
{
if( ! preg_match( sprintf( \'#^%s#i\', home_url() ), $matches[1] ) )
{
$url = $matches[1];
// http:// we\'ll add it later
$url = str_replace( \'http://\', \'\', $url );
$url = sprintf( \'/go/%s\', $url );
return str_replace( $matches[1], home_url( $url ), $matches[0] );
}
else
{
return $matches[0];
}
}
这是所有的烂摊子
as a plugin.