WordPress的几种添加跳转内链的处理方式  

受不了的广告和spam,决定加个跳转页一抹黑.下面介绍几个方法,也当笔记也当教学.  演示请看 传送门

第一种:如果只是简单的跳转,使用下面的代码

<?php
function redirect($url)
{
    if(headers_sent()) { 
        return false;
    }
    if(substr($url, 0, 4) != 'http') {
        $schema = $_SERVER['SERVER_PORT'] == '443' ? 'https' : 'http';
        $host = strlen($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
        $url = "$schema://$host$to";
    }    
    header("HTTP/1.1 301 Moved Permanently");
    // header("HTTP/1.1 302 Found")
    // header("HTTP/1.1 303 See Other")
    header("Location: $url");
    exit();
}
$url = $_REQUEST['url'];
redirect($url);
?>

第二种:如果实现评论跳转,改wordpress吧.打开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://30c.org");
            exit;
        }
    }
}

第三种:把评论和外链都改成url格式

//评论链接url跳转
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="', 'target="_blank" href="'.get_option('home').'/go.php?url=', $text );
    $text=str_replace("href='", "target='_blank'href='".get_option('home')."/go.php?url=", $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://30c.org/");
            exit;
        }
    }
}

当然如果你主题的functions.php文件中本来就有<?php comment_author_url() ?> ,那么你只要找到类似下面的代码,将其中的

<?php if (get_comment_author_url()) : ?>
<a id="commentauthor-<?php comment_ID() ?>" href="<?php comment_author_url() ?>">
<?php else : ?>
<span id="commentauthor-<?php comment_ID() ?>">
<?php endif; ?>
<?php comment_author() ?>
<?php if(get_comment_author_url()) : ?>
</a>
<?php else : ?>
</span>
<?php endif; ?>

将代码中的<?php comment_author_url() ?>修改成:/go.php?url=<?php comment_author_url() ?> ,当然go.php你也可以按照自己的想法自由修改的.

go.php 下载传送门 解压密码 http://30c.org

本站的最终修改方法不同于任何以上一种,具体请参看 给WordPress添加上外链转内链的方法 ,还有跳转页的缩略图添加方法文章 给你的网站加上指定域名显示在线缩略图功能.

另外如果你想破解在线缩略图的广告,请参看  如何简单破解shrinktheweb的缩略图跳转广告

请订阅本站 RSS feed 订阅到信箱 ,欢迎 Donate 或者 上面的广告内容 支持三十岁

本文链接:WordPress的几种添加跳转内链的处理方式

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:三十岁,谢谢!^^


分享到:          
  • 通告关闭
  • 评论 (8)
  1. 怎样添加文章内链呢?通过修改代码方式怎么实现?

    • 很久之前研究过,忘了.推荐用插件吧

  2. 不能下载了。请给个新的下载地址吧。

  3. 正好需要,学习了!

  4. 在后台我看到有,只是这样一个功能,有评论时邮件通知管理,没有通过用户的功能,
    就像你这评论下方,提交评论上面一点那个,可以勾选的那功能

    • 偷偷的告诉你,下面的那些话都是我自己写的.

  5. 博主你好,想问下如何实现像你的评论下方这样的功能,用户评论后,博主回复了会邮件通知用户这一功能,

    • 这个是wp自带的,你在后台设置评论就有了

评论关闭