emlog非插件实现相关文章功能

  • 首页 > 技术学习
  • 作者:小小的一世
  • 时间: 2016年12月23日 23:24
  • 字数:3957 个
  • 字号:
  • 评论:0 条
  • 浏览:7635 次
  • 百度:百度已收录
  • 分类: 技术学习
  • 时间:2016-12-23 23:24 热度:7635° 评论:0 条 

    我们都知道文章底部的相关文章有利于提高pv,那么如何不使用插件,给emlog配置上相关文章功能呢?
    首先:在当前主题module.php文件中添加如下代码:
    1. <?php
    2. //相关日志
    3. function related_logs($logData = array())
    4. {
    5. $configfile = EMLOG_ROOT.'/content/plugins/related_log/related_log_config.php';
    6. if (is_file($configfile)) {
    7. require $configfile;
    8. }else{
    9. $related_log_type = 'sort';//相关日志类型,sort为分类,tag为日志;
    10. $related_log_sort = 'rand';//排列方式,views_desc 为点击数(降序)comnum_desc 为评论数(降序) rand 为随机 views_asc 为点击数(升序)comnum_asc 为评论数(升序)
    11. $related_log_num = '10'; //显示文章数
    12. $related_inrss = 'y'; //是否显示在rss订阅中,y为是,其它值为否
    13. }
    14. global $value;
    15. $DB = MySql::getInstance();
    16. $CACHE = Cache::getInstance();
    17. extract($logData);
    18. if($value)
    19. {
    20. $logid = $value['id'];
    21. $sortid = $value['sortid'];
    22. global $abstract;
    23. }
    24. $sql = "SELECT gid,title FROM ".DB_PREFIX."blog WHERE hide='n' AND type='blog'";
    25. if($related_log_type == 'tag')
    26. {
    27. $log_cache_tags = $CACHE->readCache('logtags');
    28. $Tag_Model = new Tag_Model();
    29. $related_log_id_str = '0';
    30. foreach($log_cache_tags[$logid] as $key => $val)
    31. {
    32. $related_log_id_str .= ','.$Tag_Model->getTagByName($val['tagname']);
    33. }
    34. $sql .= " AND gid!=$logid AND gid IN ($related_log_id_str)";
    35. }else{
    36. $sql .= " AND gid!=$logid AND sortid=$sortid";
    37. }
    38. switch ($related_log_sort)
    39. {
    40. case 'views_desc':
    41. {
    42. $sql .= " ORDER BY views DESC";
    43. break;
    44. }
    45. case 'views_asc':
    46. {
    47. $sql .= " ORDER BY views ASC";
    48. break;
    49. }
    50. case 'comnum_desc':
    51. {
    52. $sql .= " ORDER BY comnum DESC";
    53. break;
    54. }
    55. case 'comnum_asc':
    56. {
    57. $sql .= " ORDER BY comnum ASC";
    58. break;
    59. }
    60. case 'rand':
    61. {
    62. $sql .= " ORDER BY rand()";
    63. break;
    64. }
    65. }
    66. $sql .= " LIMIT 0,$related_log_num";
    67. $related_logs = array();
    68. $query = $DB->query($sql);
    69. while($row = $DB->fetch_array($query))
    70. {
    71. $row['gid'] = intval($row['gid']);
    72. $row['title'] = htmlspecialchars($row['title']);
    73. $related_logs[] = $row;
    74. }
    75. $out = '';
    76. if(!empty($related_logs))
    77. {
    78. foreach($related_logs as $val)
    79. {
    80. $out .= "<li><a href=\"".Url::log($val['gid'])."\">{$val['title']}</a></li>";
    81. }
    82. }
    83. if(!empty($value['content']))
    84. {
    85. if($related_inrss == 'y')
    86. {
    87. $abstract .= $out;
    88. }
    89. }else{
    90. echo $out;
    91. }
    92. }
    93. ?>
    然后:打开当前主题的echo_log.php文件,把以下代码放到合适的位置
    1. <div id="art_about">
    2. <b>相关文章:</b>
    3. <ul class="art_col">
    4. <?php related_logs($logData);?>
    5. </ul>
    6. </div>
    好了,已经可以实现相关文章功能,接下来只要css美化一下就OK了。 
  • 	
    1. #art_about{margin:10px 5px; padding: 10px 0; overflow:hidden; padding-bottom:10px;font-size:12px;}
    2. #art_about ul{padding:10px;}
    3. #art_about ul li {
    4. line-height:1.5em;
    5. float:left;
    6. background:0px 50% transparent;
    7. margin:5px 15px;
    8. width:250px;
    9. white-sapce:nowrap;
    10. overflow:hidden;
    11. display:inline;
    12. }
  • 正文到此结束
    您阅读这篇文章共花了: 
    本文链接:http://www.suozy.cn/post-8.html
    版权声明:若无特殊注明,本文皆为《小小的一世》原创,转载请保留文章出处。

    热门推荐

    Hello! How do you see it?

    你还可以输入250 / 250 个字

    嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗


    当您驻足停留过,从此便注定我们的缘分。站在时间的尽头,我们已是朋友,前端的路上我再也不用一个人独自行走。
    返回顶部    返回首页    手气不错    手机版本   后花园   
    版权所有:小小的一世    站点维护:    若要幸福,不写忧伤;红尘满界,不道惆怅。 【风雨一生兼程,灵魂轻盈随行】   鲁ICP备15009546号-1