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

小熊 网站建设评论2,1731字数 2341阅读7分48秒阅读模式

问题描述

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

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

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

先贴一段代码

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

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
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
小熊