欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

WordPress实现相关文章功能代码方法

时间:2022-07-25 08:00:58 其他范文 收藏本文 下载本文

下面是小编帮大家整理的WordPress实现相关文章功能代码方法,本文共8篇,希望对大家带来帮助,欢迎大家分享。

WordPress实现相关文章功能代码方法

篇1:WordPress实现相关文章功能代码方法

WordPress有很多实现相关文章功能的插件,插件的优点是配置简单,但是可能会对网站的速度造成一些小的影响,所以很多人还是比较喜欢用代码实现需要的功能,但是话又说回来了,代码实现也有缺点,就是配置复杂,不懂代码的人完全摸不着头脑或者只能照搬别人的代码,还不如用插件,

* 文章标题1

* 文章标题2

......

方法一:标签相关

首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。下面是实现的代码:

$post_tags = wp_get_post_tags($post->ID);

if ($post_tags) {

foreach ($post_tags as $tag)

{

// 获取标签列表

$tag_list[] .= $tag->term_id;

}

// 随机获取标签列表中的一个标签

$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];

// 该方法使用 query_posts 函数来调用相关文章,以下是参数列表

$args = array(

'tag__in' => array($post_tag),

'category__not_in' => array(NULL),      // 不包括的分类ID

'post__not_in' => array($post->ID),

'showposts' => 6,               // 显示相关文章数量

'caller_get_posts' => 1

);

query_posts($args);

if (have_posts()) :

while (have_posts()) : the_post(); update_post_caches($posts); ?>

* “ rel=”bookmark“ title=”

* 暂无相关文章

使用说明:”不包括的分类ID” 指的是相关文章不显示该分类下的文章,将同行的 NULL 改成文章分类的ID即可,多个ID就用半角逗号隔开。因为这里限制只显示6篇相关文章,所以不管给 query_posts() 的参数 tag__in 赋多少个值,都是只显示一个标签下的 6 篇文章,除非第一个标签有1篇,第二个标签有2篇,第三个有3篇。。。。。。所以如果这篇文章有多个标签,那么我们采取的做法是随机获取一个标签的id,赋值给 tag__in 这个参数,获取该标签下的6篇文章。

方法二:分类相关

本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。

$cats = wp_get_post_categories($post->ID);

if ($cats) {

$cat = get_category( $cats[0] );

$first_cat = $cat->cat_ID;

$args = array(

'category__in' => array($first_cat),

'post__not_in' => array($post->ID),

'showposts' => 6,

'caller_get_posts' => 1);

query_posts($args);

if (have_posts()) :

while (have_posts()) : the_post(); update_post_caches($posts); ?>

* “ rel=”bookmark“ title=”

?>“>

* 暂无相关文章

方法三:标签相关,SQL获取

获取相关文章的原理与方法一相似,不过在获取文章的时候是以SQL语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts().

$post_tags = wp_get_post_tags($post->ID);

if ($post_tags) {

foreach ($post_tags as $tag)

{

// 获取标签列表

$tag_list[] .= $tag->term_id;

}

// 随机获取标签列表中的一个标签

$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];

$related = $wpdb->get_results(”

SELECT {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.guid

FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy

WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id

AND {$wpdb->prefix}term_taxonomy.taxonomy = 'post_tag'

AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}

term_relationships.term_taxonomy_id

AND {$wpdb->prefix}posts.post_status = 'publish'

AND {$wpdb->prefix}posts.post_type = 'post'

AND {$wpdb->prefix}term_taxonomy.term_id = '“ . $post_tag . ”'

AND {$wpdb->prefix}posts.ID != '“ . $post->ID . ”'

ORDER BY RAND( )

LIMIT 6“);

// 以上代码中的 6 为限制只获取6篇相关文章

// 通过修改数字 6,可修改你想要的文章数量

if ( $related ) {

foreach ($related as $related_post) {

?>

* guid; ?>” rel=“bookmark”

title=“

* 暂无相关文章

方法四:分类相关,SQL获取

获取相关文章的原理与方法二相似,不过在获取文章的时候是以SQL语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts().

$cats = wp_get_post_categories($post->ID);

if ($cats) {

$cat = get_category( $cats[0] );

$first_cat = $cat->cat_ID;

$related = $wpdb->get_results(”

SELECT wp_posts.post_title, wp_posts.guid

FROM wp_posts, wp_term_relationships, wp_term_taxonomy

WHERE wp_posts.ID = wp_term_relationships.object_id

AND {$wpdb->prefix}term_taxonomy.taxonomy = 'category'

AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id

AND {$wpdb->prefix}posts.post_status = 'publish'

AND {$wpdb->prefix}posts.post_type = 'post'

AND {$wpdb->prefix}term_taxonomy.term_id = '“ . $first_cat . ”'

AND {$wpdb->prefix}posts.ID != '“ . $post->ID . ”'

ORDER BY RAND( )

LIMIT 6“);

if ( $related ) {

foreach ($related as $related_post) {

?>

* guid; ?>” rel=“bookmark”

title=“

* 暂无相关文章

方法五:作者相关

该方法是获取该文章作者的其他文章来充当相关文章,代码如下:

$post_author = get_the_author_meta( 'user_login' );

$args = array(

'author_name' => $post_author,

'post__not_in' => array($post->ID),

'showposts' => 6,               // 显示相关文章数量

'orderby' => date,          // 按时间排序

'caller_get_posts' => 1

);

query_posts($args);

if (have_posts()) :

while (have_posts()) : the_post(); update_post_caches($posts); ?>

* ” rel=“bookmark”

title=“

* 暂无相关文章

时间效率对比

我们将用之前的一个php代码对以上各个相关文章代码执行时间进行测算,以便对以上各个的方法进行效率,给你的选择提供参考,

以下是在同一篇文章中获取6篇相关文章,以上各方法最终测算的时间如下:

方法一:0.18067908287048 秒

方法二:0.057158946990967 秒

方法三:0.037126064300537 秒

方法四:0.045628070831299 秒

方法五:0.023991823196411 秒

篇2:WordPress代码实现相关文章的几种方法

WordPress有很多实现相关文章功能的插件,插件的优点是配置简 单,但是可能会对网站的速度造成一些小的影响,所以很多人还是比较喜欢用代码实现需要的功能,但是话又说回来了,代码实现也有缺点,就是配置复杂,不懂代 码的人完全摸不着头脑或者只能照搬别人的代码,还不如用插件,

* 文章标题1

* 文章标题2

......

方法一:标签相关

首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。下面是实现的代码:

$post_tags = wp_get_post_tags($post->ID);

if ($post_tags) {

foreach ($post_tags as $tag)

{

// 获取标签列表

$tag_list[] .= $tag->term_id;

}

// 随机获取标签列表中的一个标签

$post_tag = $tag_list[ mt_rand(0, count($tag_list) - 1) ];

// 该方法使用 query_posts() 函数来调用相关文章,以下是参数列表

$args = array(

'tag__in' => array($post_tag),

'category__not_in' => array(NULL),      // 不包括的分类ID

'post__not_in' => array($post->ID),

'showposts' => 6,               // 显示相关文章数量

'caller_get_posts' => 1

);

query_posts($args);

if (have_posts()) :

while (have_posts()) : the_post(); update_post_caches($posts); ?>

* ” rel=“bookmark” title=“

* 暂无相关文章

使用说明:”不包括的分类ID” 指的是相关文章不显示该分类下的文章,将同行的 NULL 改成文章分类的ID即可,多个ID就用半角逗号隔开,

因为这里限制只显示6篇相关文章,所以不管给 query_posts() 的参数 tag__in 赋多少个值,都是只显示一个标签下的 6 篇文章,除非第一个标签有1篇,第二个标签有2篇,第三个有3篇。。。。。。所以如果这篇文章有多个标签,那么我们采取的做法是随机获取一个标签的id, 赋值给 tag__in 这个参数,获取该标签下的6篇文章。

方法二:分类相关

本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。

$cats = wp_get_post_categories($post->ID);

if ($cats) {

$cat = get_category( $cats[0] );

$first_cat = $cat->cat_ID;

$args = array(

'category__in' => array($first_cat),

'post__not_in' => array($post->ID),

'showposts' => 6,

'caller_get_posts' => 1);

query_posts($args);

if (have_posts()) :

while (have_posts()) : the_post(); update_post_caches($posts); ?>

* ” rel=“bookmark” title=“

?>”>

* 暂无相关文章

篇3:WordPress 非插件实现前台投稿功能

很多网站都想开放读者的投稿功能,接受读者的投稿,不仅可以丰富博客的内容,还可以增加与读者之间的沟通,可以说是一举多得的事情,何乐不为呢?WordPress本身并不提供投稿功能,但是WordPress拥有强大的扩展能力,我们可以自己来添加这个功能,

实 现用户投稿,有两种方法,一种是开放后台的注册功能,普通用户注册进去默认设置为投稿者,登陆进去即可添加文章(默认为草稿);另一种方法是在前台提供投 稿表单,用户填写相应的表格即可。前一种方法实现起来比较简单,基本不需要博主配置太多东西,只是有些博主可能会觉得别扭,不愿让他人看到自己的博客后 台;而后一种方法对投稿者来说方便了很多,博主也不用担心自己博客的后台隐私,只是该方法实现起来比较麻烦,需要配置的东西很多。本文也只将介绍后一种方 法,希望对你有所帮助,当然也只是复制粘贴代码就可以了。

一、添加投稿表单

1、首先在当前主题的目录下新建一个php文件,命名为tougao-page.php,然后将page.php中的所有代码复制到tougao-page.php中;

2、删除tougao-page.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;

3、将

二、添加表单处理代码

在tougao-page.php开头处中,将第一个

get_var(“SELECT post_date FROM $wpdb->posts WHERE post_type = 'post' ORDER BY post_date DESC LIMIT 1”); // 博客当前最新文章发布时间与要投稿的文章至少间隔120秒。 // 可自行修改时间间隔,修改下面代码中的120即可 // 相比Cookie来验证两次投稿的时间差,读数据库的方式更加安全 if ( current_time('timestamp') - strtotime($last_post) < 120 ) { wp_die('您投稿也太勤快了吧,先歇会儿!'); }// 表单变量初始化 $name = isset( $_POST['tougao_authorname'] ) ? trim(htmlspecialchars($_POST['tougao_authorname'], ENT_QUOTES)) : ''; $email = isset( $_POST['tougao_authoremail'] ) ? trim(htmlspecialchars($_POST['tougao_authoremail'], ENT_QUOTES)) : ''; $blog = isset( $_POST['tougao_authorblog'] ) ? trim(htmlspecialchars($_POST['tougao_authorblog'], ENT_QUOTES)) : ''; $title = isset( $_POST['tougao_title'] ) ? trim(htmlspecialchars($_POST['tougao_title'], ENT_QUOTES)) : ''; $category = isset( $_POST['cat'] ) ? (int)$_POST['cat'] : 0; $content = isset( $_POST['tougao_content'] ) ? trim(htmlspecialchars($_POST['tougao_content'], ENT_QUOTES)) : ''; // 表单项数据验证 if ( empty($name) || mb_strlen($name) > 20 ) { wp_die('昵称必须填写,且长度不得超过20字'); } if ( empty($email) || strlen($email) > 60 || !preg_match(“/^([a-z0-9+_-]+)(.[a-z0-9+_-]+)*@([a-z0-9-]+.)+[a-z]{2,6}$/ix”, $email)) { wp_die('Email必须填写,且长度不得超过60字,必须符合Email格式'); } if ( empty($title) || mb_strlen($title) > 100 ) { wp_die('标题必须填写,且长度不得超过100字'); } if ( empty($content) || mb_strlen($content) > 3000 || mb_strlen($content) < 100) { wp_die('内容必须填写,且长度不得超过3000字,不得少于100字'); } $post_content = '昵称: '.$name.'

Email: '.$email.'

blog: '.$blog.'

内容:

'.$content;$tougao = array( 'post_title' => $title, 'post_content' => $post_content, 'post_category' => array($category) ); // 将文章插入数据库 $status = wp_insert_post( $tougao );if ($status != 0) { // 投稿成功给博主发送邮件 // somebody#example.com替换博主邮箱 // My subject替换为邮件标题,content替换为邮件内容 wp_mail(“somebody#example.com”,“My subject”,“content”); wp_die('投稿成功!感谢投稿!', '投稿成功'); } else { wp_die('投稿失败!'); }}

最后以UTF-8编码保存tougao-page.php,否则中文可能会乱码,

代码补充说明,如果你想让投稿的文章立即发布,而不需要审核再编辑,那么请将以上代码58行改成:

'post_content' => $post_content, 'post_status' => 'publish',

最后进入WordPress管理后台 – 页面 – 创建页面,标题为投稿(可以自己起名),内容填上投稿说明等,右侧可以选择模板,选择 tougao 即可。

好了,基本的投稿功能已经添加完毕,至于表单样式不好看,表单缺少你想要的项目等问题,你就自己添加css、表单项吧。

篇4:dedecms5.7文章二次开发实现阅读全文功能的方法

这篇文章主要为大家介绍了dedecms5.7文章二次开发实现阅读全文功能的方法,涉及文章模型相关类文件功能的修改与完善,是一个比较典型的二次开发技巧,需要的朋友可以参考下

阅读全文功能其实在很多的流行站点都有的,比如网易,新浪等,随着文章内容的增加,当一个页面有多个分页的时候,就会显示出这个“在本页阅读全文”的链接,点击这个链接之后出现的,将是这篇文章以没有分页出现的型式,那么在dedecms5.7如何在文章内容页添加阅读全文功能呢?

这个阅读全文有什么用呢?说白了,也就是提高用户体验,下面让我们看看,怎么简单现实这个功能.

修改文件:include/arc.archives.class.php

注意:做任何修改前都要备份好原文件.

第一步:打开include/arc.archives.class.php

文件查找://issystem==-1

往下 大概 145行 找到:

代码如下:

$this->Fields[‘userip‘] = $this->addTableRow[‘userip‘];

在下面一行添加:

代码如下:

$this->Fields[‘body2‘] = $this->addTableRow[‘body‘];

第二步查找:

代码如下:

$this->dsql->ExecuteNoneQuery(“Update `dede_archives` SET ismake=1 WHERE id=‘”.$this->ArcID.“‘”);

在上一行添加以下代码:

代码如下:

//阅读全文开始

if($this->TotalPage > 1) {

//用正则匹配把分页符去掉

$this->Fields[‘body2‘] = preg_replace(‘/# p#副标题# e#/U‘, ‘‘,$this->Fields[‘body2‘]);

$this->SplitFields = explode(“#p2222#”,$this->Fields[‘body2‘]);

$this->Fields[‘tmptitle‘] = (emptyempty($this->Fields[‘tmptitle‘]) ? $this->Fields[‘title‘] : $this->Fields[‘tmptitle‘]);

$this->Fields[‘title‘] = $this->Fields[‘tmptitle‘];

$this->TotalPage = count($this->SplitFields);

$this->Fields[‘totalpage‘] = $this->TotalPage;

$TRUEfilenameall = $this->GetTruePath().$fileFirst.“_all.”.$this->ShortName;

$this->ParseDMFields(1,0);

$this->dtp->SaveTo($TRUEfilenameall);

if($cfg_remote_site==‘Y‘ && $isremote == 1)

{

//分析远程文件路径

$remotefile = str_replace(DEDEROOT, ‘‘, $TRUEfilename);

$localfile = ‘..‘.$remotefile;

//创建远程文件夹

$remotedir = preg_replace(“#[^/]*.html#”, ‘‘, $remotefile);

$this->ftp->rmkdir($remotedir);

$this->ftp->upload($localfile, $remotefile, ‘ascii‘);

}

}

//阅读全文结束

第三步:查找 获得静态页面分页列表,代码如下:

代码如下:

/**

* 获得静态页面分页列表

*

* @access public

* @param int $totalPage 总页数

* @param int $nowPage 当前页数

* @param int $aid 文档id

* @return string

*/

function GetPagebreak($totalPage, $nowPage, $aid)

{

if($totalPage==1)

{

return “”;

}

//$PageList = “

共”.$totalPage.“页:

”;

$PageList = “”;

$nPage = $nowPage-1;

$lPage = $nowPage+1;

if($nowPage==1)

{

$PageList.=“<”;

}

else

{

if($nPage==1)

{

$PageList.=“NameFirst.”.“.$this->ShortName.”‘ target=‘_self‘><“;

}

else

{

$PageList.=”NameFirst.“_”.$nPage.“.”.$this->ShortName.“‘ target=‘_self‘><”;

}

}

for($i=1;$i<=$totalPage;$i++)

{

if($i==1)

{

if($nowPage!=1)

{

$PageList.=“NameFirst.”.“.$this->ShortName.”‘ target=‘_self‘>1“;

}

else

{

$PageList.=”1“;

}

}

else

{

$n = $i;

if($nowPage!=$i)

{

$PageList.=”NameFirst.“_”.$i.“.”.$this->ShortName.“‘ target=‘_self‘>”.$n.“”;

}

else

{

$PageList.=“{$n}”;

}

}

}

if($lPage <= $totalPage)

{

$PageList.=“NameFirst.”_“.$lPage.”.“.$this->ShortName.”‘ target=‘_self‘>>“;

}

else

{

$PageList.= ”>“;

}

$PageList.= ”NameFirst.“_all.”.$this->ShortName.“‘>阅读全文”;

return $PageList;

}

也就是在return $PageList 上一行添加了一行代码:

代码如下:

$PageList.= “NameFirst.”_all.“.$this->ShortName.”‘>阅读全文“;

修改完成后,保存文件,更新一下页面就可以看到效果了.

希望本文所述对大家的dedecms建站有所帮助,

篇5:Wordpress主题修改:使用文章缩略图功能

今天笔者说的这个缩略图功能,其实网上已经传烂了,不知道大家有没有看过,今儿拿出来原因是,感觉网上说的不是很具体,一些设置没有提到,所以先给大家提前说一下。

首页你要看下你所用的主题有没有开启文章缩略图功能,如果看起的话,会在wordpress后台编辑页面或者文章时在右下角的地方看到一个特色图像的设置,如下图:

如果没有说明你还没有激活这功能。我们需要在你主题functions.php里面加一段代码。

add_theme_support( 'post-thumbnails' ); //激活文章和页面的缩略图功能。

//如果你想分别激活它们,可以使用下面的代码:

add_theme_support( 'post-thumbnails', array( 'post' ) ); // 激活文章缩略图功能

add_theme_support( 'post-thumbnails', array( 'page' ) ); // 激活页面缩略图功能

?>

这样你的缩略图功能就激活了,然后我们添加图片或者直接点击设置特色图片的时候,你会发现多了一个设置如图。

我们单击作为特色图像,这样你就可以将这个图片作为特色图片显示了。

做好之后我们就要对它进行调用然后在前台显示出来,代码是:

the_post_thumbnail;

//需要将这段代码放在你的主循环中比如:

?>

这样缩略图就可以显示了。这个基本的方法掌握好之后,下面是一些它的其他使用方法。

1.自定义缩略图的大小(放在主题functions.php里面add_theme_support()的下面)

//$width 是图片的宽度,可以直接填数字

//$height 是图片的高度,也可以直接填数字

//$crop 是否进行裁剪,默认是false不裁剪,如果填写true 你的图片将会裁剪成你设置的大小。

不过set_post_thumbnail_size()笔者在用的时候不起作用,不知道大家有没有试过。试过后如果可以使用的记得和笔者说下哈。

我这边使用的是直接规定缩略图大小(直接在主循环里面输出)

the_post_thumbnail('thumbnail');       // 缩略图(最大默认 宽150px高150px)

the_post_thumbnail('medium');          // 中等大小(最大默认 宽300px 高300px)

the_post_thumbnail('large');           // 大图 (最后默认宽1024px高1024px)

the_post_thumbnail('full');            // 原图

the_post_thumbnail( array(100,100) );  // 自己定义宽高

?>

这里需要多讲一下,设置默认缩略图大小是在wordpress后台 设置->媒体 里面,

2.判断文章是否含有缩略图

has_post_thumbnail();

//用法是,通过if如果进行判断

if ( has_post_thumbnail() )

{

//显示缩略图

}

else

{

//没有缩略图( 这里可以放一张默认的图片 )

}

?>

3.创建新的缩略图大小(放在主题functions.php文件add_theme_support()下面)

我们看到上面设置的图片大小都是等比例缩小的。不管你怎么设置它都是按比列来进行缩小的。如果想设置宽高不等的。便可以使用下面这个函数。

add_image_size( $name, $width, $height, $crop );

//这里的第一个参数$name是新创建缩略图的名称,其他的参数和上面说的是一样的

//使用方法

add_image_size('home-thumb','200','120');

?>

然后我们在显示的时候只需要在填上新的缩略图名称如:the_post_thumbnail('home-thumb');这样就可以显示了。

4.获取缩略图ID号

以上便是今天主要讲的内容,大家如果以后有需要的可以来看看。

篇6:wordpress无插件实现在线人数统计功能

不用插件实现wordpress的在线人数统计功能,其实很简单,写一个检测在线人数的函数(如下代码段),将函数放到博客主题function.php当中,然后在sidebar或者footer文件中调用即可!

//检测在线人数function counter_user_online($temp){ $user_online = ”count.txt“; //保存人数的文件,网站根目录下 touch($user_online);//如果没有此文件,则创建 $timeout = 120;//120秒内没动作者,认为掉线 $user_arr = file_get_contents($user_online); $user_arr = explode('#',rtrim($user_arr,'#')); $temp = array(); foreach($user_arr as $value){ $user = explode(”,“,trim($value)); if (($user[0] != getenv('REMOTE_ADDR')) && ($user[1] > time())) { //如果不是本用户IP并时间没有 超时则放入到数组中 array_push($temp,$user[0].”,“.$user[1]); } } array_push($temp,getenv('REMOTE_ADDR').”,“.(time() + ($timeout)).'#'); //保存本用户的信息 $user_arr = implode(”#“,$temp); //写入文件 $fp = fopen($user_online,”w“); flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作 fputs($fp,$user_arr); flock($fp,LOCK_UN); fclose($fp); echo count($temp);}

代码如上,至于如何在页面显示人数的调用方法就不用多说了吧,

wordpress无插件实现在线人数统计功能

篇7:WordPress纯代码实现外链自动添加小图标

不知大家有没有注意到笔者博客文章中的外链都有一个小图标(如上图)这个小图标提醒了读者这是个外部链接,提升了用户体验,那么如何给外链自动加上这个小图标呢?(千万别想着手动添加,太耗精力了)

方法一.使用插件WP External Links

WP External Links这个插件不仅可以给外链添加小图标,还可以添加Nofollow、external属性,还可以设置外链在新窗口/标签打开。此外,还可以设置应用范围:文章区域、评论区域、侧边栏。功能非常强大。

方法二.纯代码法(免插件)

如果仅仅是想给外链添加一个小图标的话,何必多安装一个插件呢。

向function.php文件添加以下代码(将www.92app.com换成自己的博客网址):

function autoicon($text) {$return = str_replace('

将左边的小图标上传到空间获取链接,

管理资料

然后向style.css文件添加以下代码:

.external { padding-right: 11px; background: url('图片的链接地址') no-repeat right top;}

最后解释一下代码的作用:

添加到function.php的代码给所有的外部链接加上了一个external类,接着添加到style.css文件中的代码给所有external类的链接添加背景图片,就是那个小图标。这样,就实现了免插件,给外链添加小图标的目的。

来自:www.92app.com/external-links-icon.html

篇8:WordPress自动给文章添加nofollow属性的实现方法

这篇文章主要为大家介绍了WordPress自动给文章添加nofollow属性的实现方法,可通过Nofollow for external link 插件实现文章页自动添加nofollow属性的功能,是非常实用的技巧,需要的朋友可以参考下

nofollow属性是告诉搜索引擎不传权重过去,但WordPressk中如果我们要nofollow属性就需要手工加了,现在我来告诉大家利用 Nofollow for external link就可以自动给文章添加nofollow属性了.

直接安装启用 Nofollow for external link 插件,或者将下面的代码添加到当前主题的 functions.php 文件即可.

实例代码如下:

代码如下:

add_filter( ‘the_content‘, ‘cn_nf_url_parse‘);

function cn_nf_url_parse( $content ) {

$regexp = ”]*href=(“??)([^” >]*?)1[^>]*>“;

if(preg_match_all(”/$regexp/siU“, $content, $matches, PREG_SET_ORDER)) {

if( !emptyempty($matches) ) {

$srcUrl = get_option(‘siteurl‘);

for ($i=0; $i < count($matches); $i++)

{

$tag = $matches[$i][0];

$tag2 = $matches[$i][0];

$url = $matches[$i][0];

$noFollow = ‘‘;

$pattern = ‘/targets*=s*”s*_blanks*“/‘;

preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);

if( count($match) < 1 )

$noFollow .= ‘ target=”_blank“ ‘;

$pattern = ‘/rels*=s*”s*[n|d]ofollows*“/‘;

preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);

if( count($match) < 1 )

$noFollow .= ‘ rel=”nofollow" ‘;

$pos = strpos($url,$srcUrl);

if ($pos === false) {

$tag = rtrim ($tag,‘>‘);

$tag .= $noFollow.‘>‘;

$content = str_replace($tag2,$tag,$content);

}

}

}

}

$content = str_replace(‘]]>‘, ‘]]>‘, $content);

return $content;

}

最终效果:自动给文章/页面的站外链接添加nofollow属性(rel=”nofollow”),并且在新窗口打开这些链接(即添加 target=”_blank”属性),如果已经手动给链接添加了 rel=”dofollow”,就不会添加 rel=”nofollow”,如果手动添加了 target=”_blank”,就不会重复添加.

为指定分类的所有链接添加nofollow属性,那你可以将下面的代码添加到主题的 functions.php 文件即可:

代码如下:

function nofollow_cat_posts($text) {

global $post;

if( in_category(1) ) { // 修改这里的分类ID

$text = stripslashes(wp_rel_nofollow($text));

}

return $text;

}

add_filter(‘the_content‘, ‘nofollow_cat_posts‘);

希望本文所述对大家的WordPress建站有所帮助,

在PHPCMS中实现无觅相关文章功能

新手教程:用.htaccess实现二级域名功能

介绍几种常见网页挂马方法(挂马代码)

windows7实现网络共享的设置方法

windows rsync两台服务器目录同步功能实现Windows服务器操作系统

高校音乐德育功能实现的研究教育论文

试述系统安全分析评价方法及其实现

地图投影解析变换的数值实现方法

python实现数组插入新元素的方法

新形势下工商管理的功能原则及方法论文

《WordPress实现相关文章功能代码方法(整理8篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档