当前位置:爱推吧 » WordPress技巧 » cos-html-cache下实现评论链接跳转并且新窗口打开

cos-html-cache下实现评论链接跳转并且新窗口打开

提起缓存插件,cos html cache还真是有不少的问题,比如首页不会自动更新,即使没有设置首页缓存也是;还有就是Wordpress已经登陆,可是在前面却没有工具框等。最近匹夫的逆袭使用上了 cos html cache,不过也没有看出来快在哪? 也许缓存过的章节不用再查询缓存库吧。

对于实现评论在新窗口打开,你可以参考《点击comment_author_link生成的评论者名字在新窗口打开链接的方法》,但是Era没有设置跳转,下面这篇文章是转自Robin ,实现了评论的链接跳转问题。

以下是方法:

如果没有使用cos-html-cache的话直接修改主题文件夹下的functions.php,加上以下代码就可以正常工作了

add_filter('get_comment_author_link', 'add_redirect_comment_link', 5);
add_filter('comment_text', 'add_redirect_comment_link', 99);
function add_redirect_comment_link($text = '') {
 $text=str_replace('href="', 'href="'.get_option('home').'/?r=', $text);
 $text=str_replace("href='", "href='".get_option('home')."/?r=", $text);
 return $text;
}
add_action('init', 'redirect_comment_link');
function redirect_comment_link(){
 $redirect = $_GET['r'];
 if($redirect){
 if(strpos($_SERVER['HTTP_REFERER'],get_option('home')) !== false){
 header("Location: $redirect");
 exit;
 }
 else {
 header("Location: http://robin.sh/"); //修改为你的网站
 exit;
 }
 }
}

如果使用cos-html-cache的话,add_action这个方法就失效了,所以不能用上面的代码实现重定向。
绕一个弯,还是可以用javascript的方法实现来实现的,虽然链接不是太好看了。
网上并没有提供这种情况下新窗口打开的方法,这里Robin做了一点修改,可以实现新窗口打开了。
同样是在functions.php里,加入以下代码:

//comments link redirect
add_filter('get_comment_author_link', 'add_redirect_comment_author_link', 5);
add_filter('comment_text', 'add_redirect_comment_text', 99);
function add_redirect_comment_author_link($text = ''){
 $text=str_replace("href="
 ,'href="javascript:window.open('
 ,ereg_replace('href=\'[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]\'',"\\0)\"",$text));
 return $text;
}

function add_redirect_comment_text($text = ''){
 $text=str_replace("href="
 ,"href='javascript:window.open("
 ,ereg_replace('href=\"[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]\"',"\\0)'", $text));
 return $text;
}

 

2 个吐槽 on “cos-html-cache下实现评论链接跳转并且新窗口打开”

发表评论

电子邮件地址不会被公开。 必填项已用*标注