12
2020
01

为zblog php添加相关文章的功能

为每一篇博客文章增加相关文章,可以为读者展现更多的相关信息,提高用户体验,降低跳出率。

想当初,还在用zblog ASP时,由于有超强侧栏工具、相关文章等插件,用户跳出率常常在60%左右,换成zblog PHP后,跳出率升为百分之八九十。

因此,我把实现相关文章功能,列为了“两对半博客的2020年计划”中的一项。


在zblog的应用市场上寻找了一款相关文章的插件,33元,也不贵,但安装后还要加装一个应用基载,整来整去,还是没有显示出相关文章。

没有办法,花了钱也解决不了问题,只有自己去折腾了。


相关代码

从网上搜到了两段相关文章代码,如下。


代码之一,是官方推荐代码:

{$aid=$article.ID}{$tagid=$article.Tags}{$cid=$article.Category.ID}{php}

    $str = '';

    $tagrd=array_rand($tagid);

    if( sizeof($tagid)>0 && ($tagid[$tagrd]->Count)>1){

        $tagi='%{'.$tagrd.'}%';

        $where = array(array('=','log_Status','0'),array('like','log_Tag',$tagi),array('<>','log_ID',$aid));

    }else{

        $where = array(array('=','log_Status','0'),array('=','log_CateID',$cid),array('<>','log_ID',$aid));

    }

    $array = $zbp->GetArticleList(array('*'),$where,array('rand()'=>' '),array(6),'');

    foreach ($array as $related) {

        if(($related->ID)!=$aid){

        $str .= "<li><span class=\"time\">{$related->Time('m-d')}</span><span class=\"title\"><i class=\"icon-doc-text\"></i><a href=\"{$related->Url}\" title=\"{$related->Title}\">{$related->Title}</a></span><small  class=\"pcomm\"><i class=\"icon-comment-1\"></i> <a href=\"{$related->Url}#comments\" rel=\"nofollow\" title=\"《{$related->Title}》上的评论\">{$related->CommNums}</a></small></li>";

        }

    }{/php}{$str}


代码二,使用了另外一种方法,调用zblog php的getlist函数:

{foreach GetList(10,null,null,null,null,null,array('is_related'=>$article.ID)) as $related}

<li><span>{$related.Time('Y-m-d')}</span><a href="{$related.Url}">{$related.Title}</a></li>

{/foreach}


使用方法


网上介绍的是:“选用其中的一种代码加到我们zblog网站模板里面的 post-single.php 里面,一般放在{$article.Content} 下面,具体样式自己修改一下”。


我在网站空间里搜索了“post-single.php”,发现有许多个,而需要更改的那个文件,其具体位置是:网站根目录/zb_users/theme/"你的博客主题"/template/post-single.php。

下载该文件到电脑桌面,选用记事本方式打开,查找到“{$article.Content} ”,在其下面添加上面两段代码之一,我目前试用的是较简短的代码二,代码一有空时再折腾一下,看有没有什么不同。


我的修改及最后效果

我把代码二修改了一下,以实现:

1.添加“相关文章”标题,也可改为想要的其他文字,如“您可能感兴趣的文章”等。

2.把相关文章的数目由10改为5。

3.去掉列表项前的小圆点,并把日期放到后边。


修改后的代码如下:

<b>您可能感兴趣的文章:</b>

{foreach GetList(5,null,null,null,null,null,array('is_related'=>$article.ID)) as $related}

<br / ><a href="{$related.Url}">{$related.Title}</a><span> ({$related.Time('Y-m-d')})</span>

{/foreach}


最终效果如下:

相关文章效果.jpg

据感觉,这个相关文章的功能是根据文章的标签来实现,以后,不用再费时费力的添加相关文章链接,不过,要为每一篇文章加上相关的标签。

以后,将根据自己的实践,在这里更新“相关文章”和标签的内容。



PS:

2020年2月10日,嫌5条相关文章数目太少,我又将5条改为10条了。

2023年12月12日,将相关文章数目由10条改为3条。


您可能感兴趣的文章:
博客被黑后的处理及安全防范措施 (2023-10-28)
重装zblog过程记录 (2023-09-02)
升级zblog故障:Call to undefined function HookFilterPlugin() (2023-08-09)
« 上一篇 下一篇 »

评论列表:

1.网站之殇  2020-02-05 11:10:47 回复该评论
请问如何当文章多个标签的时候,如何按第一个标签调用相关文章,而不是全部的,代码是什么样的
1.两对半  2020-02-05 13:50:39 回复该评论
这个我还不清楚,我只是用的官方代码呢。
如果要这样改,需要找到相关源码去修改,或者如果文章不是很多,编辑文章,把第二个或其他的标签都去掉。
2.日记坊  2020-02-04 23:25:24 回复该评论
我那个破主题都想扔了
2.两对半  2020-02-05 13:45:24 回复该评论
用最简单的主题吧,最近我一直都打不开你的博客,前段时间打开了,也无法留言
3.北湫  2020-01-16 20:57:20 回复该评论
我觉得博主还是可以考虑下更换Typecho博客程序,此博客程序的插件和主题模板也非常多,然后采用的是轻量化的代码加持。
3.两对半  2020-01-16 21:22:49 回复该评论
等你们先试路,以后再换哈
4.浮游  2020-01-14 03:21:32 回复该评论
一直以来总感觉博客与众不同,原来博主用的是zblog啊
4.两对半  2020-01-14 07:01:41 回复该评论
哈哈,我用的最简洁的模版,自己配了一下色,也没怎么处理。看来用zblog的人越来越少了
5.山野愚人居  2020-01-13 18:23:23 回复该评论
说实话,只折腾过wordpress\typecho\emlog,其它不熟悉~
5.两对半  2020-01-13 19:21:26 回复该评论
你已经折腾很多了,是高手了,话说typecho最近有点火
6.纬八路  2020-01-12 22:20:17 回复该评论
连你也开始折腾博客了。
6.两对半  2020-01-13 07:02:11 回复该评论
只是添加一些基础的实用功能,不会太折腾的。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。