SEO优化:如何让你的读者沉浸在你的WordPress博客里

2020年2月25日22:41:53 发表评论 43 views

问题描述

我突然发现Wordpress的文章里面的链接一点就直接跳转了,对于一个正在看你博客的人来说非常的不友好,对于SEO优化来说,用户越是沉浸在你的网站里,你的网站排名就会 提高的越快,爬虫可是会模仿人类动作的。一起来看看我怎么处理的吧!

文章内的链接自动在新页面打开

网上查的代码不能用,我又学习了一下php :sob: 自己实现了。

先贴一段代码

function add_blank( $text ) {
    $text = str_replace("<a", '<a target="_blank" rel="nofollow" ', $text);
    return $text;
}

add_action('the_content','add_blank');

add_blank函数,把他参数传递过来的字符串里所有的a标签全部加个了新标签页打开.

rel="nofollow"代表文章中的链接不要让爬虫追踪。

注意我在nofollow"后面加了一个空格以防万一。

str_replace函数是php里的替换字符串的函数,从我的用法可以知道他的三个参数的含义。

add_action是一个WordPress动作钩子函数(hook),他调用了add_filter,他的作用就是拿到函数的返回值,做处理,再返回出来。

所以说为了起到一个处理函数返回值的作用,他必须有参数来接收返回值,而且他本身必须有返回值。

后台控制板左上角的“查看站点”链接。

往往在后台的时候,一点查看站点就跳出去很难受的,改一改咯。

SEO优化:如何让你的读者沉浸在你的WordPress博客里

老样子,要加钩子就加到functions.php

function customize_my_wp_admin_bar( $wp_admin_bar ) {

    //获取view-site 节点以便修改
    $node = $wp_admin_bar->get_node('view-site');
    //获取site-name节点
    $node2 = $wp_admin_bar->get_node('site-name');

    //修改打开方式
    $node->meta['target'] = '_blank';
    $node2->meta['target'] = '_blank';

    //更新节点
    $wp_admin_bar->add_node($node);
    $wp_admin_bar->add_node($node2);

}
add_action( 'admin_bar_menu', 'customize_my_wp_admin_bar', 80 );

可以注意到,我加了两处,就是我上图标记的两处,node的名字就是去掉wp-admin-ber-的前缀就是了,估计WordPress都是这样的规则。

细心的人可以注意到,add_action多了第三个参数,他的含义是用于指定与特定的动作相关联的函数的执行顺序。数字越小,执行越早,具有相同优先级的函数在它们被添加到动作的顺序执行。所以设置成80,弄成最后执行。

访客留言评论链接

SEO优化:如何让你的读者沉浸在你的WordPress博客里

如果你在评论的时候填写了网站地址,默认会将你的昵称加上链接,同样也是在同窗口跳转,小熊认为wordpress在这一点做得不是很好。

首先打开wp-includes文件夹,找到comment-template.php文件打开,在大约216行找到以下代码:

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

替换成下图:

SEO优化:如何让你的读者沉浸在你的WordPress博客里

也就是加个这

 target='_blank'

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

让访客昵称带上链接更有利于吸引人气。况且,我们都看到了nofollow这个属性,就是说即使搜索引擎见到这个链接也不会追踪过去,更不会传递权重或者PR。google和百度都支持nofollow属性。

友情链接

在后台添加链接的时候,勾选这个选项就成了。

SEO优化:如何让你的读者沉浸在你的WordPress博客里

比较难受的是这个每次添加的时候都要选中 :-1:, 打开wp-admin目录下的includes文件夹,找到meta-boxes.php文件打开。找到以下代码:

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

可以看到这里明显就是一个表单,把input_blank的设置为选中就行了。

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

加了checked="checked"

直接全站链接在新窗口或标签中打开

不需要修改程序文件,只需在主题的header模版中找到

<head>

在其下面加上:

<base target=“_blank”>

我没有测试过这个方法,因为他太不友好了,但是适合懒人。

最后

钩子的概念是程序员必须要知道的高级语法,他在各种编程语言或者各个DevOps工具里都会有体现

引用

如果上文理解有误,是他们的锅

WordPress过滤器(Filters):apply_filters和add_filter

让你的wordpress在新窗口打开链接

weinxin
微信公众号
三分钟学习晦涩难懂的技术,分享开发、运维、云技术等方面知识,带您轻松打破技术壁垒,编程如鱼得水。欢迎您的关注~!
小熊

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: