在新窗口打开WordPress文章中的所有链接(target=”_blank”)

内容纲要

在新窗口打开WordPress文章中的链接,有助于提高访客体验,为什么这么说呢?假设你在看文章的过程中,想浏览文章中提到的另一篇文章,但是现在这篇文章你还没有看完,没想到一点击链接,浏览器就切换到了新文章,要看刚才的文章,还得后退,是不是有点烦?

虽然有时候点击鼠标中键(滚轮)可以使链接在新窗口打开,或者某些浏览器支持拖动链接新窗口打开,但是这些并不适用于所有的访客。

所以,我们可以考虑,让文章中的所有链接都在新窗口打开。要实现这个功能,你可以在添加链接的时候,手动选择打开方式(给链接添加 target=_blank”属性),但也是挺费事的。

有没有方法自动实现该功能呢?答案是肯定的,只需要在你的WordPress主题的 functions.php 的最后一个 ?> 前添加下面的代码即可:

function autoblank($text) {
$return = str_replace('<a', '<a target="_blank"', $text);
return $return;
}
add_filter('the_content', 'autoblank');

以上来源:https://www.wpdaxue.com/add-target_blank-on-all-link.html

WordPress 设置所有链接在新窗口打开(target=”_blank”)

有时候我们想让自己 WordPress 博文中的所有链接都在新窗口打开,这样原页面就不会被覆盖,可以方便用户再切换回来。今天老王就介绍一个自动给文章中所有的链接添加 target=”_blank” 属性的方法,举一反三,在这个方法的基础上,你也可以添加 nofollow 属性,或者只有外链才用新窗口打开等等。

方法很简单,在你 WordPress 主题的 functions.php 文件中添加如下代码:

add_filter('the_content','the_content_blank',999);function the_content_blank($content) {
    preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);
    if($matches){
        foreach($matches[2] as $val){
            if(strpos($val, "#")===false && !preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val)) {
                $content = str_replace( "href=\"".$val."\"", " target=\"_blank\" "."href=\"".$val."\"", $content );
            }
        }
    }
    return $content;}

如果你想只有非本站的链接才在新窗口打开,那么就再加一个判断条件:strpos($val,home_url())===false,基于这个方法,基本你想对文章中的链接进行什么操作都可以实现了。

以上来源:https://laowangblog.com/wordpress-set-url-target-blank.html