boxmoe_header_banner_img

加载中

文章导读

「WordPress」前后台全局新标签跳转


avatar
白木 2023年8月19日 647

WordPress前后台页面新增全局新标签形式跳转页面

风铃白木

WordPress后台 👉🏿 外观 👉🏿 主题文件编辑器 👉🏿 找到❤️ functions.php ❤️,在最后添加以下代码,保存即可!

/**
 <em> 让所有外链在新标签页打开(可选:也处理内链)
 </em> 放到主题的 functions.php 或自定义插件里即可
 <em>/
add_filter( 'wp_loaded', function () {
/</em>
<em> 优先级 99:尽量在其他插件/主题输出之后再处理,
</em> 防止被它们二次覆盖。
<em>/
ob_start( function ( $html ) {
/</em>
<em> 正则说明:
</em>   - 匹配 <a ... href="..." ...>
<em>   - 负向预查:跳过已带 target="_blank" 的链接
</em>   - 捕获已有属性,防止重复添加
<em>/
$pattern = '#<a(?:[^>]+?href=<a href="[^"\']</em>" target="_blank">"\'</a>["\'][^>]<em>)>#is';
$html = preg_replace_callback(
$pattern,
function ( $matches ) {
$tag = $matches[0];
// 已经带 target="_blank" 就跳过
if ( stripos( $tag, 'target="_blank"' ) !== false ) {
return $tag;
}
// 获取 href
$href = $matches[1];
// 如果想“仅外链”才新标签,取消下面三行注释
// $home = parse_url( home_url(), PHP_URL_HOST );
// $link = parse_url( $href, PHP_URL_HOST );
// if ( ! $link || $link === $home ) return $tag;
// 追加 target 及安全属性
$tag = preg_replace(
'#(<a\b[^>]</em>?)>#is',
'$1 target="_blank" rel="noopener noreferrer">',
$tag
);
return $tag;
},
$html
);
return $html;
} );
}, 99 );

 

 

感谢您的支持
微信赞赏

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字
插入代码

广告版 ne-2058250819

后退
前进
刷新
复制
粘贴
全选
删除
返回首页