1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress将评论者链接转为内链并用base64加密-WordPress开发教程

本篇采用的是利用wp内在的钩子实现的。需要用到两个钩子: 一、对评论者链接重新定义,加密并且添加nofollow// 重定义评论者链接-加密并添加nofollowfunction redefine_

本篇采用的是利用wp内在的钩子实现的。需要用到两个钩子:

一、对评论者链接重新定义,加密并且添加nofollow

// 重定义评论者链接-加密并添加nofollow
function redefine_comment_author_link() {
    $encodeurl = get_comment_author_url( $comment_ID );
    $url = get_option('home').'/jv?url=' . base64_encode($encodeurl);//jv?url 自己修改,下面对应修改$_GET['url']中的url
    $author = get_comment_author( $comment_ID );
    if ( empty( $encodeurl ) || 'http://' == $encodeurl )
        return $author;
    else
        return "<a href='$url' rel='external nofollow' class='url'>$author</a>";
}
add_filter('get_comment_author_link', 'redefine_comment_author_link');

二、解码上面用base64加密的评论用户外链实施跳转

function redirect_comment_link(){ // 重定向评论者链接
    $redirect = base64_decode($_GET['url']); // 解密GET获得的加密链接部分
    if($redirect){
        if(strpos($_SERVER['HTTP_REFERER'],get_option('home')) !== false){
        header("Location: $redirect");
        exit;
        } else {
        header("Location: http://www.inlojv.com/");//修改成你自己的地址
        exit;
        }
    }
}
add_action('init', 'redirect_comment_link');

最后也别忘了修改一下robots.txt,添加 Disallow: /jv?* ,到此已经全部完工。

goto/xxxxx 形式的链接跳转

另一种不采用$_GET方式跳转的方法,转换成 http://xxx.com/goto/base64加密码 的形式。

分成两步:

一、先用正则以及wp的钩子修改外链形式为 /goto/xxxxx

二、然后解密xxxx部分,用template_redirect钩子和wp_redirect函数进行302跳转

代码如下:

function convert_to_internal_links($content){
    preg_match_all('/\\shref=(\\'|\\")(http[^\\'\\"#]*?)(\\'|\\")([\\s]?)/',$content,$matches);
    if($matches){
        foreach($matches[2] as $val){
            if(strpos($val,home_url())===false){
                $rep = $matches[1][0].$val.$matches[3][0];
                $new = '"'.home_url().'/goto/'.base64_encode($val).'" target="_blank"';
                $content = str_replace("$rep","$new",$content);
            }
        }
    }
    return $content;
}
add_filter('the_content','convert_to_internal_links',99); // 文章正文外链转换
add_filter('comment_text','convert_to_internal_links',99); // 评论内容的链接转换
add_filter('get_comment_author_link','convert_to_internal_links',99); // 访客的链接转换
function inlo_redirect() {
    $baseurl = 'goto';
    $request = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $hop_base = trailingslashit(trailingslashit(home_url()).$baseurl); // 删除末尾的 斜杠/ 符号
    if (substr($request,0,strlen($hop_base)) != $hop_base)    return false;
    $hop_key = str_ireplace($hop_base, '', $request);
    if(substr($hop_key, -1) == '/')$hop_key = substr($hop_key, 0, -1);
    if (!empty($hop_key)) {
        $url = base64_decode($hop_key);
        wp_redirect( $url, 302 );
        exit;
    }
}
add_action('template_redirect','inlo_redirect');

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/121769

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

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