豆豆の鱼.

Life record . 记录自己的日常琐事.

wordpress外链跳转并使用php页面提示

1563328323 20190717095145 wordpress外链跳转并使用php页面提示昨天看到猫叔留言说外链新窗口打开,这个想法好,于是今早就上网查了下外链新窗口的一些教程,其中一个教程我比较喜欢,主要是 跳转的界面好看啊,还默认了一定的缓冲时间,如果不小按到了外链链接可以选择关闭而不用打开,这个可以的,主要还是好看,毕竟我是颜值动物,哈哈!

此外链是设置了带nofollow属性,所以不用担心seo这一块,放心大胆的用上吧。
说下方法,第一步,首先在新建一个php文件,命名为index.php,然后填充内容:
知道大家懒,直接下载我上传的使用吧,如果不嫌麻烦,那就复制自己新建一个php文件:

由于本站的WTS-WAF规则拦截,打不出来完整的php页面代码,所以先用链接将就看一下

打开链接查看index的代码:https://pan.baidu.com/s/136fug4wnTDYpz9oxh2lL-g

index.php下载地址:

链接:https://share.weiyun.com/5K7nUzY 密码:h4t4is

接下来需要在网站根目录建立一个goto文件夹,然后把刚才新建的index.php文件上传到此文件夹内,到此工作完成三分之一;

第二步,找到你正在使用主题的functions.php文件,拉到最后,添加以下代码:

/**
* WordPress外链新窗口打开并使用php页面go跳转
* https://www.dujin.org/12762.html
*/
function the_content_nofollow($content){
preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
if($matches){
foreach($matches[2] as $val){
if(strpos($val,'://')!==false && strpos($val,home_url())===false && !preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)){
$content=str_replace("href=\"$val\"", "href=\"".home_url()."/goto/?url=$val\" ",$content);
}
}
}
return $content;
}
add_filter('the_content','the_content_nofollow',999);

到这里工作完成了三分之二,因为到这里虽然可以跳转了,但还是在原页面跳转,那就得增加一串代码实现_blank及nofollow属性。
第三步,还是主题的functions.php文件中,还是拉到最后,添加以下_blank及nofollow属性的代码,实现最终的功能

/**
* WordPress外链自动新窗口打开并添加nofollow属性 - 方法二
* https://www.dujin.org/12336.html
*/
add_filter( 'the_content', 'cn_nf_url_parse');
function cn_nf_url_parse( $content ) {
$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
if( !empty($matches) ) {
$srcUrl = get_option('siteurl');
for ($i=0; $i < count($matches); $i++)
{
$tag = $matches[$i][0];
$tag2 = $matches[$i][0];
$url = $matches[$i][0];
$noFollow = '';
$pattern = '/target\s*=\s*"\s*_blank\s*"/';
preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
if( count($match) < 1 )
$noFollow .= ' target="_blank" ';
$pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>');
$tag .= $noFollow.'>';
$content = str_replace($tag2,$tag,$content);
}
}
}
}
$content = str_replace(']]>', ']]>', $content);
return $content;
}

到此,教程完美结束,啦啦啦啦!界面美化这个大家有能力在index.php中进行修改,我觉得现在的样式也很好看。

点赞

发表评论

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