如何让wordpress 在新窗口打开链接?

如何让 WordPress 在新窗口打开链接?

这个问题一开始也一直困扰着我。后来在网上找了找,发现有很多方法,大体上有下面几种。

需要先说明一点:下面有些方法会修改 WordPress 核心文件,例如 wp-adminwp-includes 目录下的文件。这样做虽然当时有效,但 WordPress 升级后很容易被覆盖。更稳妥的做法,是优先使用主题、子主题、插件,或者 WordPress 编辑器自带的“在新标签页打开”选项。

第一种:用 <base> 让页面链接默认在新窗口打开

只要在主题的 header.php 文件中,在 <head> 标签内加入下面代码即可:

<base target="_blank">

这种方法简单有效,本博客当时也是采用的这种方法。不过它会影响页面中几乎所有相对链接的默认打开方式,所以如果网站中有登录、表单、分页、锚点跳转等交互,需要自己测试一下是否符合预期。

第二种:后台“访问站点”链接在新窗口打开

打开 wp-admin 文件夹,找到 admin-header.php 文件。找到类似下面的代码:

<a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e( 'Visit Site' ); ?>">

在最后一个尖括号 > 前插入 target="_blank",保存文件即可。修改后类似这样:

<a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e( 'Visit Site' ); ?>" target="_blank">

这样,在后台点击打开前台首页的链接时,就会在新窗口打开。

第三种:留言评论中的链接在新窗口打开

打开 wp-includes 文件夹,找到 comment-template.php 文件。找到类似下面的代码:

$return = "<a href='$url' rel='external nofollow' class='url'>$author</a>";

<a> 标签中加入 target="_blank"

$return = "<a href='$url' target='_blank' rel='external nofollow' class='url'>$author</a>";

这样,访客昵称所指向的链接就会在新窗口打开。

如果不想改核心文件,也可以在主题的 functions.php 中通过过滤器处理评论作者链接。具体代码要根据主题和 WordPress 版本确认,修改前最好先备份。

第四种:友情链接在新窗口打开

打开 wp-admin/includes/meta-boxes.php 文件,找到类似下面的代码:

<input id="link_target_blank" type="radio" name="link_target" value="_blank" <?php echo
( isset( $link->link_target ) && ( $link->link_target == '_blank' ) ? 'checked="checked"' : '' ); ?> />

将以上代码修改为:

<input id="link_target_blank" type="radio" name="link_target" value="_blank" checked="checked" />

这样就可以让友情链接默认选择在新窗口打开。或者在添加友情链接时,在下方的相关选项中直接选择“在新窗口打开链接”。

更推荐的做法

如果只是某一篇文章里的外部链接要新窗口打开,最简单的办法是在编辑器里选中链接,然后勾选“在新标签页打开”。如果是手写 HTML,可以这样写:

<a href="https://example.com" target="_blank" rel="noopener noreferrer">示例链接</a>

其中:

  • target="_blank" 表示在新窗口或新标签页打开。
  • rel="noopener noreferrer" 用来减少新窗口页面反向访问原页面的风险。

如果需要全站外链都在新窗口打开,建议用主题或插件统一处理,而不是直接修改 WordPress 核心文件。这样升级 WordPress 时不容易丢失修改。

Leave a Reply