ecshop文章自动加关键词链接插件

用过ecshop的都知道文章的关键词没有自动加上链接功能,为了实现这个功能,在网上查找了一下,都要收费的,其实这并不难,我花了二个多小时实现了这个功能,现免费分享给大家。
在EC后台对“关键词”以及“站内链接”进行增删改,    可以设置每个内链在每个页面中的重复次数。
    比如"内链出现次数"设置为1,那么就只在第一次出现的关键字上加链接
首先建立一个存放关键词的数据表:ecs_art_keyword代码如下:
CREATE TABLE `ecs_art_keyword` (
`id` INT NOT NULL AUTO_INCREMENT ,
`keyword` VARCHAR( 200 ) NOT NULL ,
`url` VARCHAR( 200 ) NOT NULL ,
`num` INT NOT NULL ,
`orders` INT NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM
这段代码,在ecshop的sql运行即可。字段keyword :存放关键词字段url:关键词加上链接的地址字段num:文章中前多少个关键词加上链接字段orders:关键词代替的先后顺序。下面的是替换函数,放在includes的lib_common.php中:/*内容关键字替换**/
function ReplaceKeywords($content)
{
  global $arrKeywords;
  if ( empty($content) )
  {
   return($content);
  }
  $i = 0;
//跳过<img>标签
  preg_match_all('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$content,$match);//替换所有有img 为 [img]foreach($match[0] as $key=>$img){$content = str_replace($img,'<[img'.$key.']>',$content);}
  foreach( $arrKeywords as $arr )//遍历关键字
  {
   if ( strpos($content, $arr[keyword]) > -1 )//如果找到,则替换为:[Keyword0]、[Keyword1]这种格式的数据,并将找到的关键字放入新的数组
   {
    $content = preg_replace("/" . $arr[keyword] . "/i", "[Keyword" . $i . "]", $content);
    $arrTemp[] = $arr;
    $i ++;
   }
  }
  //die($content);//可以在这里先输出替换后的结果
  //再将替换后的数据反替换
  $arrLen = count($arrTemp);
  for ( $i = 0; $i < $arrLen; $i ++ )//遍历找到的关键字,比如有10个[Keyword0],替换的时候第一个带链接,其余都不带。
  {
   $content = preg_replace("/\[Keyword" . $i . "\]/i", "<strong><a href=\"" . $arrTemp[$i] . "\" target=\"_blank\">" . $arrTemp[$i][keyword] . "</a></strong>", $content, $arrTemp[$i][num]);
   $content = preg_replace("/\[Keyword" . $i . "\]/i", $arrTemp[$i][keyword], $content);
  }

  foreach($match[0] as $key=>$img){$content = str_replace('<[img'.$key.']>',$img,$content);}
  return ($content);
在ecshop的根目录下的article.php,找到:$cache_id = sprintf('%X', crc32($_REQUEST['id'] . '-' . $_CFG['lang']));在其下面加入:$sql='select keyword,url,num from ' . $GLOBALS['ecs']->table('art_keyword') . 'order by orders asc';
$arrKeywords = $GLOBALS['db']->getAll($sql); //读出关键词及链接网址和数量在article.php中,找到:function get_article_info($article_id)在if ($row !== false)
    {中,加入$row['content']=  ReplaceKeywords($row['content']);这就实现了文章的关键词加上链接。、可以查看演示网站:http://www.23ecshop.com,所有的文章,只要后台设置了关键词的,都在关键词上加上了链接。最后还有一个问题,就是如何在后台录入关键词和网址,这部份要在后台增加几个文件,在这里就不讲了,如果有需要这几个文件的朋友,可以加我QQ613543835,免费送出。附上后台关键词管理图:


也可以直接下载本站做好的插件:http://www.5kym.com/ecshop/1912.html

版权声明:本文来源于互联网,如有侵权,请联系下方邮箱,一个工作日删除!