dedecms织梦WAP手机网站调用同类目下相关文章的方法.

时间: 作者:SEOer1 浏览:
    因为手机端的技术门槛,普通的站长比较难自己去建一个PC端对应的手机wap网站,所以很多时候是在网上找一个免费的模板过来套用,这个其实也蛮实用的,不过就是有很多地方要自己进行二次开发的,包括样式和构架等等,比如在PC端套用手机wap网站的时候,我们可以看到手机wap网站上所有的的调用其实是要重新调用SQL数据库的,不能够直接在上面用织梦原来的调用标签调用,要用到的标签必须自己进行自定义,套用的手机端wap网站大多数的功能都已经实现了,只是在一些细节上面要我们自己动手进行修复完善,比如说想要在手机wap网站上实现文章内容页面下能有对应栏目的文章,提高同类同栏目的文章(相关文章)的点击阅读量。在手机wap模板上一般都已经有了这些代码:

/*以下是文章页面用来调用相关文章的代码(其实就是$likearticle这个函数的输出)*/


 <h3>相关文章</h3>
  <ul class="list1 pd10">
 <?php echo $likearticle;?>
  </ul>

以上这段代码一般是放在article.php页面上的,也就是手机文章内容页面上的代码,我们只要找到wap.php(一般在根目录)文件中内容页代码段里的$likearticle是怎么定义的,就很容易进行修改了。一般模板里的代码是这样:


   if($keyword!='')
    {
             $query2="SELECT id,title FROM `dede_archives` where arcrank>-1 OR (keyword) ORDER BY id desc limit 0,8"; 
    }
    else
    {
            $query2="SELECT id,typeid,title FROM `dede_archives` where arcrank>-1 ORDER BY id desc limit 0,8";
    }
 
$dsql->SetQuery($query2);
$dsql->Execute();
while($row=$dsql->GetObject())
{
$likearticle.="<li><a href='wap.php?action=article&amp;id={$row->id}'>".cut_str(ConvertStr($row->title),18)."</a></li>";
}


这段代码是关键,从开头的if函数可以知道,这个模板上定义相关文章是根据关键词(keyword)来定义的,但是通常每篇文章的关键词不可能只是一个,也不可能相同,所以一旦单凭关键词来调用相关文章,能匹配到的文章很少,所以我们选择,只要是同一个栏目下的,都算是相关文章,那么怎么来改呢,

首先要先读懂上面的代码的意思,开头是if语句,括号里对关键词函数进行判别,如果$keyword不等于空,就执行第一个$query2函数,给它赋值,具体代码是:

$query2="SELECT id,title FROM `dede_archives` where arcrank>-1 OR (keyword) ORDER BY id desc limit 0,8"; 


等号后面的意思大体是:从全站(FROM)已经审核(arcrank)的文章中调用或者(OR)keyword相同的文章中调用(这里有错),分别调用这些文章的id和title,按照(ORDER)文章id 降序排序,调用数量为8篇。有些参数可以自己改的。

我们发现,这样调用后的结果就是所有文章对应的相关文章都是整站的最新文章,这样就非常不精准,而我们要的是同栏目的文章,所以这里的if语句的判断就显得多余,不过我们尽量不要大量改动不熟悉的代码,减少出错概率,现在我们知道这两个$query2是什么意思了之后,将两个$query2后面的代码改成这样:


    if($keyword!='')
    {
             $query2="SELECT id,typeid,title FROM `dede_archives` where arcrank>-1 And typeid='$typeid' And id<>'$id' ORDER BY id desc limit 0,8"; 
    }
    else
    {
            $query2="SELECT id,typeid,title FROM `dede_archives` where arcrank>-1 And typeid='$typeid' And id<>'$id' ORDER BY id desc limit 0,8";
    }
 
$dsql->SetQuery($query2);
$dsql->Execute();
while($row=$dsql->GetObject())
{
$likearticle.="<li><a href='wap.php?action=article&amp;id={$row->id}'>".cut_str(ConvertStr($row->title),18)."</a></li>";
}


    细心的朋友就会发现,这两个$query2 我都改成了一样,所以无论上面if语句判断是什么结果,反正输出的文章都一样,不受keyword的值影响,其实就是调用多了一个typeid(栏目ID)函数,去掉keyword函数,同时对调用的文章的栏目ID进行判断,同一个栏目的文章才要,即 typeid='$typeid',后面接着的条件是id<>'$id',是过滤当前文章的意思,<>是不等于,避免重复出现,当前相关文章就不要再出现当前这篇文章了。

    好了,到此就讲完啦。比较啰嗦,不过这也是自己的一个爱好,比较喜欢研究这些,虽然自己的水平还是入门级的,但弄明白之后感觉非常充实非常有成就感,感觉又进步了,所以以后还会有更多这种详细讲解的文章哦,敬请期待。大家还可以加我们的微信公众号:站长百事。有更多精彩内容。
微信公众号
微信公众号:
  • 前端全栈之路(微信群)
前端QQ交流群
前端QQ交流群:
  • 794324979
  • 734802480(已满)

更多文章

栏目文章


Copyright © 2014-2023 seozhijia.net 版权所有-粤ICP备13087626号-4