首页 > 网站开发 > V9二次开发 > PHPCMS删除文章后数据库中仍有删除文章中的关键词解决办法

V9二次开发

PHPCMS删除文章后数据库中仍有删除文章中的关键词解决办法

2020-09-12 17:47:19V9二次开发
博主发现之前发布的文章删除了之后,数据库的表字段中还是保存的有之前的文章中的关键词的,也就是删除文章并不能连带之前发布的文章的关键词一起删除,博主经过分析明白了,原来是程序在发布文章的那一刻文章就自动保存在了数据库的表中了,或者修改文章后,会重复在v9_keyword_data插入数据。那么该如何解决这个问题呢?1、找到 phpcms modules content
博主发现之前发布的文章删除了之后,数据库的表字段中还是保存的有之前的文章中的关键词的,也就是删除文章并不能连带之前发布的文章的关键词一起删除,博主经过分析明白了,原来是程序在发布文章的那一刻文章就自动保存在了数据库的表中了,或者修改文章后,会重复在v9_keyword_data插入数据。那么该如何解决这个问题呢?
1、找到/phpcms/modules/content/fields/keyword/updata.inc.php中找到以下代码:
  1. $keyword_data_db->insert(array('tagid'=>$tagid'siteid'=>$siteid'contentid'=>$contentid)); 
  1. 修改为: 
  2. if (!$keyword_data_db->get_one(array('tagid'=>$tagid'siteid'=>$siteid'contentid'=>$contentid))) { 
  3.     $keyword_data_db->insert(array('tagid'=>$tagid'siteid'=>$siteid'contentid'=>$contentid)); 

2、找到/phpcms/modules/content/content.php文件;搜索public function delete();在删除内容下面添加一下代码;

  1. //删除关键字 
  2. $this->keyword_db = pc_base::load_model('keyword_model'); 
  3. $this->keyword_data_db = pc_base::load_model('keyword_data_model'); 
  4. $keyword_temp=$this->keyword_data_db->listinfo(array('contentid'=>$id.'-'.$modelid)); 
  5. $this->keyword_data_db->delete(array('contentid'=>$id.'-'.$modelid)); 
  6. foreach($keyword_temp as $one){ 
  7.     $same_keyword=$this->keyword_data_db->listinfo(array('tagid'=>$one[tagid])); 
  8.     if(emptyempty($same_keyword)){ 
  9.         $this->keyword_db->delete(array('id'=>$one[tagid])); 
  10.     } 

3、替换对应的文件,进入后台更新下网站缓存就可以了。

文章评论

  • 加我请扫码

    工作时间

    周一至周日 9:00-18:00

  • 如果本站对你有帮助可以通过扫码支付打赏下哦!

    • 微信收款码
    • 支付宝收款码