正在读取数据,页面载入中,请稍后...

织梦禁止发布重复文章

使用织梦程序,同样的标题,能发布两篇,甚至是两篇以上,无论是修改文章,还是新发布新闻站,总是能发布重复文章标题,这点就让站长很是头疼。虽然织梦官网,程序内置检测重复标题,但是把这个提示关掉,或者是忽略直接发布、直接修改的话,都是可以直接发布重复标题的。

下面,全民博客教大家,只要在发布文档、修改文档的时候,加个判断就行了。和网上的教程不一样,不是复制粘贴党,不是织梦教程搬运工,都是含金量非常高的原创织梦教程,废话不多说,直接上教程。

发布文章检测标题

①、打开 /dede/article_add.php 搜索

//生成文档ID

在它上面加入

//检测标题不能为空
if (empty($title)) {
	ShowMsg("标题不能为空", "-1");
	exit();
}
//检测内容不能为空
if (empty($body)) {
	ShowMsg("文章内容不能为空", "-1");
	exit();
}
//检测标题是否存在
$titlelpro = $dsql->GetOne("SELECT title FROM `#@__archives` WHERE title LIKE '".$title."' ");
if (is_array($titlelpro)) {
	ShowMsg("文章标题已存在,请换个标题重新发布!", "-1");
	exit();
}

完成发布文章时,检测到重复标题不能发布。

修改文章检测标题

②、打开 /dede/article_edit.php 搜索

//更新数据库的SQL语句

在它上面加入

//检测标题不能为空
if (empty($title)) {
	ShowMsg("标题不能为空", "-1");
	exit();
}
//检测内容不能为空
if (empty($body)) {
	ShowMsg("文章内容不能为空", "-1");
	exit();
}
//检测标题是否重复
$titlelpro = $dsql->GetOne("SELECT COUNT(*) AS mus FROM `#@__archives` WHERE title = '{$title}' AND id != '{$id}' ");
if ($titlelpro['mus'] > 0) {
	ShowMsg("文章标题已存在,请换个标题重新发布!", "-1");
	exit();
}

完成修改文章时,检测到重复标题不能发布。

需要特别注意

这个检测查重代码,要写在GetIndexKey获取文档ID前面,要写在更新数据库的SQL语句之前,意思入库之前查询就对了。为什么要说这个,因为,这个只是文章的,文章主表入库的,还有商品、图集、软件、专题呢,如果你只使用文章内容模型,那就可以这样改就行了,但是,如果,你还使用其它的内容模型,就得继续往下看。

要学会举一反三

除了文章,还有商品、图集、软件、专题都使用#@__archives文章主表,所以,下面的八个文件,也是需要修改的哦。当然,不使用的可以不改。

album_add.php
album_edit.php
archives_add.php
archives_edit.php
soft_add.php
soft_edit.php
spec_edit.php
spec_edit.php

不使用的内容模型,可以不需要修改的,但重要的事情说三遍,判断写在保存到主表之前,判断写在保存到主表之前,判断写在保存到主表之前,意思就是入库之前需要判断标题。

不会改也没关系,如果你实在是不会修改,或者是真的不知道,这些代码往哪里加的,看不懂的也没关系,可以私聊小千,小千手把手远程帮你改好,包括解决织梦网站的疑难杂症,不知道调用标签,不知道调用数据库,不知道关联数据库,只要是织梦网站的问题,我织梦专精十级,织梦问题都可以找我解决。

本文结束

评论专区

发表评论

评论列表(无评论)