WordPress课程广告

WordPress友情链接添加nofollow选项方法

释放双眼,带上耳机,听听看~!

WordPress 后台默认的链接选项,一般我们会用来做为友情链接使用.

其中链接关系(XFN)给网站管理员提供了很多链接关系选择,比如职场关系、地理关系、家庭关系、情感关系等等,但是这些对于我们而言几乎用不上。

然而作为友情链接及外链使用时,我们最需要是给其他外部链接加“nofollow”或者“noopener”,这种可能用上的链接关系默认却没有,所以这些我们就需要自己加上。

对于“nofollow”,应该不用多做解释,至于rel=”noopener”的作用及效果,如果不了解的朋友可以自行百度看下。

方法一:使用功能函数创建独立的选项 推荐

函数代码

直接将以下代码添加到到所使用主题的 functions.php文件最后一个?>的前面保存即可。

add_action('load-link.php', 'add_link_rel_options');
add_action('load-link-add.php', 'add_link_rel_options');

function add_link_rel_options() {
    add_action('add_meta_boxes', 'add_link_rel_meta_box', 1, 1);
    add_filter('pre_link_rel', 'save_link_rel_meta_box', 10, 1);
}

function add_link_rel_meta_box() {
    add_meta_box('link_rel_options_div', __('Link Relationship (rel)'), 'link_rel_inner_meta_box', 'link', 'side');
}

function link_rel_inner_meta_box($post) {
    $bookmark = get_bookmark($post->ID, 'ARRAY_A');
    $rel_values = array('nofollow', 'noopener', 'external');
    foreach ($rel_values as $rel_value) {
        $checked = (strpos($bookmark['link_rel'], $rel_value) !== FALSE) ? ' checked="checked"' : '';
        echo '<label for="link_rel_'.$rel_value.'_checkbox">'.__('Add ').$rel_value.'</label>';
        echo '<input value="1" id="link_rel_'.$rel_value.'_checkbox" name="link_rel_'.$rel_value.'_checkbox" type="checkbox"'.$checked.' /><br>';
    }
}

function save_link_rel_meta_box($link_rel) {
    $rel_values = array('nofollow', 'noopener', 'external');
    foreach ($rel_values as $rel_value) {
        $link_rel = trim(str_replace($rel_value, '', $link_rel));
        if (isset($_POST['link_rel_'.$rel_value.'_checkbox'])) {
            $link_rel .= ' '.$rel_value;
        }
    }
    return trim($link_rel);
}

上面的功能代码首先定义了一个add_link_rel_options函数,它会添加一个新的Meta Box到链接编辑界面。然后,add_link_rel_meta_box函数会在链接编辑界面的侧边栏添加一个名为”Link Relationship (rel)”的Meta Box,这个Meta Box的内容由link_rel_inner_meta_box函数生成。link_rel_inner_meta_box函数会为nofollow, noopenerexternal每一个选项生成一个复选框。最后,save_link_rel_meta_box函数会在用户保存链接时保存用户的选择。

下面是带注释的版本(chatgp生成 哈哈哈)

带注释版本

<?php
// 添加动作钩子,当加载链接编辑页面和添加链接页面时,执行add_link_rel_options函数
add_action('load-link.php', 'add_link_rel_options');
add_action('load-link-add.php', 'add_link_rel_options');

// 定义add_link_rel_options函数,添加元数据框并过滤链接关系
function add_link_rel_options() {
    // 添加动作钩子,当添加元数据框时,执行add_link_rel_meta_box函数
    add_action('add_meta_boxes', 'add_link_rel_meta_box', 1, 1);
    // 添加过滤器,当获取链接关系前,执行save_link_rel_meta_box函数
    add_filter('pre_link_rel', 'save_link_rel_meta_box', 10, 1);
}

// 定义add_link_rel_meta_box函数,添加链接关系的元数据框
function add_link_rel_meta_box() {
    // 添加元数据框,设置其ID、标题、回调函数、屏幕、上下文
    add_meta_box('link_rel_options_div', __('Link Relationship (rel)'), 'link_rel_inner_meta_box', 'link', 'side');
}

// 定义link_rel_inner_meta_box函数,输出元数据框的内容
function link_rel_inner_meta_box($post) {
    // 获取书签的信息
    $bookmark = get_bookmark($post->ID, 'ARRAY_A');
    // 定义链接关系的值
    $rel_values = array('nofollow', 'noopener', 'external');
    // 遍历每个链接关系的值
    foreach ($rel_values as $rel_value) {
        // 检查书签的链接关系是否包含当前的值,如果包含则设置复选框为选中状态
        $checked = (strpos($bookmark['link_rel'], $rel_value) !== FALSE) ? ' checked="checked"' : '';
        // 输出复选框的标签和复选框
        echo '<label for="link_rel_'.$rel_value.'_checkbox">'.__('Add ').$rel_value.'</label>';
        echo '<input value="1" id="link_rel_'.$rel_value.'_checkbox" name="link_rel_'.$rel_value.'_checkbox" type="checkbox"'.$checked.' /><br>';
    }
}

// 定义save_link_rel_meta_box函数,保存用户的选择
function save_link_rel_meta_box($link_rel) {
    // 定义链接关系的值
    $rel_values = array('nofollow', 'noopener', 'external');
    // 遍历每个链接关系的值
    foreach ($rel_values as $rel_value) {
        // 从链接关系中移除当前的值
        $link_rel = trim(str_replace($rel_value, '', $link_rel));
        // 检查用户是否选择了当前的值,如果选择了则添加到链接关系中
        if (isset($_POST['link_rel_'.$rel_value.'_checkbox'])) {
            $link_rel .= ' '.$rel_value;
        }
    }
    // 返回处理后的链接关系
    return trim($link_rel);
}
?>

编辑当前主题的 functions.php 文件

WordPress网站后台 – 仪表盘 – 外观 – 主题文件编辑器(有的版本可能显示是编辑)>选择主题functions.php文件>添加代码>保存文件:

WordPress后台>主题文件编辑器>编辑functions.php文件页面

注意

上面添加到主题functions.php文件的这种方式添加的功能代码只在当前使用主题下有作用,如果你切换了主题,那么这个时候就会失效,所以要注意。

推荐

推荐你使用WPCode 代码片段插件,你可以直接将上述代码添加为一个新的代码片段开启,在不需要的时候也可以直接对这个功能代码选择关闭就行,这个插件可以非常方便的管理在WordPress网站上的功能代码,如下示例:

WPCode 插件代码片段列表、管理示例

这个插件它的代码库中还有许多使用的功能代码片段,你可以选择你用得上的然后导入、选择开启就可以了,如下示例:

WordPress代码片段插件 WPCode 代码片段库截图

关于这个插件的介绍推荐你看我之前文章: WordPress代码片段插件 WPCode。

添加以上代码保存之后,我们在添加链接的时候就会发现在右侧下方多了一个『nofollow、noopener、external』的选项了。我们在添加链接时,如果需要添加nofollow标签,就直接勾选即可。具体如下图所示:

WordPress链接编辑页面

方法二:修改WordPress源文件 meta-boxes.php 添加

以 WordPress 5.8.1 为例,打开* /wordpress/wp-admin/includes 目录下的 meta-boxes.php文件,你懒得找也可以直接搜索,如下图所示:

wordpress/wp-admin/includes 目录下的 meta-boxes.php文件

打开文件,在文件中找到如下代码:

<table class="links-table">

(不同WP版本位置不同,可以搜索关键字寻找。)

meta-boxes.php文件代码

在图片中第二个个箭头的位置的添加如下代码:

<tr>
<th scope="row">自定义选项</th>
<td><fieldset><legend class="screen-reader-text"><span>自定义</span></legend>
<label for="external">
<input class="valinp" type="checkbox" name="external" value="external" id="external" <?php xfn_check('external'); ?> />external</label>
<label for="nofollow">
<input class="valinp" type="checkbox" name="nofollow" value="nofollow" id="nofollow" <?php xfn_check('nofollow'); ?> />nofollow</label>
<label for="noopener">
<input class="valinp" type="checkbox" name="noopener" value="noopener" id="noopener" <?php xfn_check('noopener'); ?> />noopener</label>
</fieldset>
</td>
</tr>

如图所示:

meta-boxes.php文件添加代码

添加后保存。

之后编辑或者添加链接时,在链接关系网(XFN)面板,会增加一个 external、nofollow、noopener的 选项,如图:

wordpress链接添加面板

也可以根据代码自行调整,如果还加更多的比如“noreferrer”之类的,自己在上面原有代码中修改后照着样式新增一段就可以了。

注意:

以上方法我实测均可以用,两种方法实际应用起来并没有任何本质的区别,所有大家选择一种自己喜欢的方式添加就可以了。

但是wordpress版本不同或者不同主题可能不一定可以。自己测试就行了,一般都是可以的。

方法二因为升级wordpress需要重新设置,直接添加在functions.php文件中升级主题会消失(因为升级后原文件会被新文件覆盖。)。

给TA打赏
共{{data.count}}人
人已打赏
WordPress技巧

wordpress自定义中没有主页设置选项

2021-9-28 12:00:57

WordPress与SEO WordPress技巧

WordPress开启链接功能

2021-10-4 9:45:42

WordPress网站建设宣传图片
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

Table of Contents

展开目录

深圳坪山网站建设公司优化网站图片能带水印吗滑县网站优化哪家公司正规深圳网站seo优化能投吗网站静态资源优化网站优化关键词多久能到首页苏州优化网站排名怀化优化网站宁波网站优化代发嵩明网站优化方式海滨社区网站seo优化简阳网站优化找哪家石首网站关键词优化沾化外贸英文网站优化厂家郑州网站优化收费多少荣成网站优化选哪家壹起航优化企业网站衢州网站关键词优化费用网站的安全优化好处网站优化简历模板云浮公司网站关键词优化推广新华区网站优化公司网站中的视频怎么加标签优化松岗网站优化许昌网站排名优化哪家好山东seo网站优化昆明网站seo优化推广费用如何优化医疗网站新乐网站快照优化祖庙网站优化查询武侯网站优化专业报价香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化