>极客内参 > 技术 > 正文

phpcms删除文章不能同步删除tag关键词v9_keyword的解决方法

PHPCMS文章被删除时,如果文章里面有图片,会同步删除图片,这样可以减少网站空间的占用,不过同时存在的关键词却不能同步删除,这样时间久了势必会让数据库变得庞大,关键是TAG表会出现死链提示,今天齐鲁建站小编就来说说phpcms删除文章不能同步删除tag关键词v9_keyword的解决方法。

下面就来说下phpcms同步删除tag关键词v9_keyword的方法。两种方法。

注意,方法一最近已经失效,方法二继续有效!

方法一,直接上步骤:

打开文件phpcms\modules\content\content.php,找到delete(),大约在332行

也就是【删除全站搜索中数据$this->search_db->delete_search($typeid,$id);】,在其下面加入如下代码:

$keyword_db = pc_base::load_model('keyword_model');
$keyword_data_db = pc_base::load_model('keyword_data_model');
$k_r = $keyword_data_db->select(array('siteid'=>$siteid, 'contentid'=>$id.'-'.$modelid));
if($k_r) {
//更新关键词使用数量
foreach ($k_r as $k_v) {
$keyword_db->update(array('videonum'=>'-=1'), array('id'=>$k_v['tagid']));
}
//删除关键词关联数据
$keyword_data_db->delete(array('siteid'=>$siteid, 'contentid'=>$id.'-'.$modelid));
}

如图所示:

phpcms,删除tag关键词,删除v9_keyword

解析一下上面的代码:

$keyword_db->update(array('videonum'=>'-=1'), array('id'=>$k_v['tagid']));

这句是自动减少tag的使用数的目的

$keyword_data_db->delete(array('siteid'=>$siteid, 'contentid'=>$id.'-'.$modelid));

这句是删除相关关链TAG的目的

方法二,直接上步骤 (2020年10月16日亲测可用) :

第一步,打开文件phpcms/modules/content/fields/keyword/updata.inc.php

找到:

$keyword_data_db->insert(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid));

修改为:

if (!$keyword_data_db->get_one(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid))) {
$keyword_data_db->insert(array('tagid'=>$tagid, 'siteid'=>$siteid, 'contentid'=>$contentid));
}

第二步,打开文件phpcms/modules/content/content.php

找到:

$this->comment->del($commentid, $siteid, $id, $catid);

在下面添加:

$this->keyword_db = pc_base::load_model('keyword_model');
$this->keyword_data_db = pc_base::load_model('keyword_data_model');
$keyword_all=$this->keyword_data_db->listinfo(array('contentid'=>$id.'-'.$modelid));
$this->keyword_data_db->delete(array('contentid'=>$id.'-'.$modelid));
foreach($keyword_all as $keyword_a){
$same_keyword=$this->keyword_data_db->listinfo(array('tagid'=>$keyword_a[tagid]));
if(empty($same_keyword)){
$this->keyword_db->delete(array('id'=>$keyword_a[tagid]));
}
}

如下图所示:

以上就是关于phpcms删除文章不能同步删除tag关键词v9_keyword的解决方法的所有内容,希望可以帮助到大家。

阅读本文的人还可以阅读:

phpcms列表页如何调用tag关键词 有图则显示缩略图

phpcmsV9调用全站和内容页所有tags关键字方法

修改phpcmsv9网站系统最新版本tag的伪静态设置


企业会员

免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。

Baidu
map