本篇文章给大家谈谈织梦CMS怎么批量导入Keywords做内部链接优化,以及织梦批量导入文章的知识点,同时本文还将给你拓展DedeCms5.6发布新闻时自动加上Keywords链接、dedecms5.
本篇文章给大家谈谈织梦CMS怎么批量导入Keywords做内部链接优化,以及织梦批量导入文章的知识点,同时本文还将给你拓展DedeCms5.6发布新闻时自动加上Keywords链接、dedecms5.7织梦源码新闻内容详细页怎么调用Keywords增加链接、DEDECMS文档Keywords维护错点“分析系统内Keywords”,批量删除教程、DedeCMS新闻自动添加指定Keywords链接的办法等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 织梦CMS怎么批量导入Keywords做内部链接优化(织梦批量导入文章)
- DedeCms5.6发布新闻时自动加上Keywords链接
- dedecms5.7织梦源码新闻内容详细页怎么调用Keywords增加链接
- DEDECMS文档Keywords维护错点“分析系统内Keywords”,批量删除教程
- DedeCMS新闻自动添加指定Keywords链接的办法
织梦CMS怎么批量导入Keywords做内部链接优化(织梦批量导入文章)
批量导入Keywords操作教程
1、准备好要导入的Keywords文件,txt文档,格式如下
注意:无论你的程序是gbk还是utf8编码,txt文档务必要用utf8无BOM格式。
2、打开 \dede\article_keywords_main.php 找到
if(empty($keyword))
在它的上面加入
//文件导入式 批量添加Keywords elseif($dopost == 'file关键字') { if(is_uploaded_file($filename)) { $newFileName = date('YmdHis', time() ) .'.txt'; $newDirPath = $cfg_basedir . '/uploads/keywords'; $newFilePath = $newDirPath .'/'.$newFileName; //目录不存在则创建 if(!file_exists( $newDirPath )) { mkdir($newDirPath, 0777, true); } move_uploaded_file($filename, $newFilePath); //读取上传的文件 $handle = fopen($newFilePath, 'r') or ShowMsg("上传文件读取失败",-1); $keyArr = array(); if($handle) { while(!feof($handle)) { $buffer = fgets($handle, 4096); $buffer = str_replace(',', ',', $buffer); $buffer = str_replace(array("\n"), '', $buffer); $buffer = trim($buffer); if(!empty($buffer)) { $keyArr[] = explode(',', $buffer); } } fclose($handle); @unlink( $newFilePath ); } //取出数据库所有的Keywords,和新添加Keywords比较,如果新添加的关键词,数据中存在则过滤 $dsql->SetQuery( "SELECT `keyword` FROM `dede_keywords` " );//将SQL查询语句格式化 $dsql->Execute();//执行SQL操作 //通过循环输出执行查询中的结果 $dataKeyArr = array(); while($row = $dsql->GetArray() ) { $dataKeyArr[] = $row['keyword']; } //拼接mysql 语句 $i = 0; foreach($keyArr as $k => $v) { $key = trim( $v[0] ); //把读取txt文档的数据转utf-8编码 $key = ($cfg_soft_lang != 'utf-8') ? iconv( "UTF-8", "gb2312//IGNORE" , $key) : $key; //如果数据库中存在该Keywords,则跳出本次循环。 注意: keyword字段在数据库中长度16字符,需要更更长点 //ALTER TABLE `dede_keywords` CHANGE `keyword` `keyword` CHAR( 255 ) NOT NULL DEFAULT '' if( in_array( $key, $dataKeyArr ) ) continue; //拼接mysql语句 $rpurl = trim($v[1], ' '); $rank = trim($v[2], ' '); $sql = "INSERT INTO `dede_keywords` ( keyword, rank, sta, rpurl ) VALUES ( '{$key}', {$rank}, 1, '{$rpurl}')"; $res = $dsql->ExecuteNoneQuery2($sql); if( $res != -1) $i ++; } //如果导入的文件所有的Keywords都添加过了,则停止执行; if(empty($i)) { ShowMsg("警告:你提交的Keywords,早已经添加过了!!!",-1); die(); } else { ShowMsg("你成功导入{$i}条数据",-1); } } } //清空关键词表里的所有数据 else if($dopost == 'delAll') { $dsql->ExecuteNoneQuery('TRUNCATE TABLE `dede_keywords`') ? ShowMsg("你已成功清除所有的Keywords!!", $ENV_GOBACK_网址 ) : ShowMsg("清除Keywords失败",-1) ; }
3、打开 \dede\templets\article_keywords_main.htm 找到
</script>
在它的上面加入
//删除选中的 function delSel() { var celements = document.getElementsByClassName('del'); for( i = 0; i < celements.length; i++ ) { if(!celements[i].checked) celements[i].checked = true; else celements[i].checked = false; } } function delAll () { if( confirm( '你确定要清空所有的Keywords,清除以后不可恢复!!' ) ) { location.href="article_keywords_main.php?dopost=delAll"; } } 继续找到
<form name='form1' action="article_keywords_main.php">
在它的上面加入
<form action="article_keywords_main.php" method="post" enctype="multipart/form-data"> <td width="40%" > <strong>Keywords维护</strong> <strong> </strong> <strong><input type="file" name="filename"></strong> <input type="hidden" name="dopost" value="file关键字" /> <strong><input type="submit" value="提交"></strong> </td> </form> 继续找到
<input type='checkbox' name='isdel_{dede:field.aid/}'value='1' />
改成
<input type='checkbox' name='isdel_{dede:field.aid/}'value='1' />
继续找到
<td height="28" colspan="6"> <input type="button" name="dl1" value="反选" onClick="selAll()" /> <input type="button" name="dl2" value="保存更改" onClick="this.form.submit();" /> </td> 改成
<td height="28" colspan="4"> <input type="button" name="dl1" value="反选" onClick="selAll()" /> <input type="button" name="dl2" value="保存更改" onClick="this.form.submit();" /> </td> <td height="28" align="center" > <input type="button" value="清空所有Keywords" onClick="delAll()" /> <input type="button" name="dl1" value="删除全选" onClick="delSel()" /> </td> 完成。 本文章网址:http://www.ppssdd.com/code/12228.html。转载请保留出处,谢谢合作!
DedeCms5.6发布新闻时自动加上Keywords链接
织梦内容管理系统DedeCms v5.6发布新闻时,怎么自动加上Keywords链接,请看下边的办法:
修改文件 /include/arc.archives.class.php ,找到这一段:
Copy to ClipboardLiehuo.Net Codes引用的内容:[]
foreach($kws as $k)
{
$k = trim($k);
if($k!=”")
{
if($i > $maxkey)
{
break;
}
$myrow = $this->dsql->GetOne(“select * from dede_keywords where keyword=’$k’ And rpurl<>” “);
if(is_array($myrow))
{
$karr[] = $k;
$GLOBALS['replaced'][$k] = 0;
$kaarr[] = “<a href=’{$myrow['rpurl']}’><u>$k</u></a>”;
}
$i++;
}
}
把它替换成:
Copy to ClipboardLiehuo.Net Codes引用的内容:[]
global $dsql;
$query="SELECT * FROM dede_keywords WHERE rpurl<>'' ORDER BY rank DESC";
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row['keyword']);
$key_url=trim($row['rpurl']);
$karr[] = $key;
$kaarr[] = "<a href='$key_url' target='_blank'><u>$key</u></a>";
}
通过以上代码,只要在“文档Keywords维护”设置了带有链接的Keywords,就可以实现在发布新闻时自动就有会链接了
注意:dede_keywords 要替换成自己的
还有这里WHERE rpurl<>'' 为两个单引号
dedecms5.7织梦源码新闻内容详细页怎么调用Keywords增加链接
dedecms5.7新闻内容详细页调用Keywords增加链接的办法{dede:field name='keywords' runphp='yes' } if(!empty(@me)) { $kws = explode(',',@me); @me = ""; foreach($kws as $k) { @me .= "<a href='/plus/search.php?keyword=".urlencode($k)."' target=_blank ><h2>$k</h2></a> "; } @me= str_replace(' ', ' ',trim(@me)); } {/dede:field}
本文章网址:http://www.ppssdd.com/code/8692.html。转载请保留出处,谢谢合作!
DEDECMS文档Keywords维护错点“分析系统内Keywords”,批量删除教程
DEDECMS确实在很多方面,用户体验做得不够好,今天不小心点击了DEDECMS文档Keywords维护的“分析系统内Keywords”,一下子生成了好几千的Keywords,于是就想批量删除,这才发现,根本没有这个功能,通过网上搜索,发现很多网站管理员朋友也遭遇了这种情况,既然后台不能支持批量删除,没方案,只能通过数据库进行批量删除了。接下来,网站管理员基地就告诉各位怎么批量删除。
*步:登录你的phpmyadmin,找到“文档Keywords”数据表dede_keywords
第二步:由于数据表内Keywords,系统生成得比较多,所有你需要首先设置显示行数如下图所示,然后全选,进行删除即可:
DedeCMS新闻自动添加指定Keywords链接的办法
DedeCMS在该版本又对许多地方进行了改进。但是我一直期待的自动添加指定关键词链接功能却仍没有出现,而且目前Keywords添加链接的次数还是不可以控制。于是我在DEDE论坛中仔细搜索,终于发现有一位朋友给出了自己的修改方法,此方法是目前5.3版中较好解决Keywords链接问题的办法:
查找include/arc.archives.class 文件下的:ReplaceKeyword 函数。 找到以下代码:
以下为引用的内容:
foreach($kws as $k)
{
$k = trim($k);
if($k!="")
{
if($i > $maxkey)
{
break;
}
$myrow = $this->dsql->GetOne("select * from dede_keywords where keyword='$k' And rpurl<>'' ");
if(is_array($myrow))
{
$karr[] = $k;
$kaarr[] = "<a href='{$myrow['rpurl']}'><u>$k</u></a>";
}
$i++;
}
将其替换为:
以下为引用的内容:
$dsql = new DedeSql(false);
$query="select * from dede_keywords where rpurl<>'' ";
$dsql->SetQuery($query);
$dsql->Execute();
while($row = $dsql->GetArray())
{
$key = trim($row['keyword']);
$rul=trim($row['rpurl']);
if($rul!="")
if(!in_array($key, $kw))
if(!in_array($kw,$key))
if(substr_count($body,$key)<5)
{
$karr[] = $key;
$kaarr[] = "<a href='$rul'><u>$key</u></a>";
}
}
其中的数字5表示在新闻中出现多少次Keywords后则不加链接。该办法可以为新闻中的Keywords自动添加链接,这些链接及词是在“新闻Keywords维护”中设置的,这样一来对于一些需要经常添加的链接锚文字就不再需要手动操作了,但该办法还不够完美。比如当新闻中该锚文字出现次数大于代码中的设定值时则一个链接也不会添加。
本文章网址:http://www.ppssdd.com/code/4700.html。转载请保留出处,谢谢合作!关于织梦CMS怎么批量导入Keywords做内部链接优化和织梦批量导入文章的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于DedeCms5.6发布新闻时自动加上Keywords链接、dedecms5.7织梦源码新闻内容详细页怎么调用Keywords增加链接、DEDECMS文档Keywords维护错点“分析系统内Keywords”,批量删除教程、DedeCMS新闻自动添加指定Keywords链接的办法等相关知识的信息别忘了在本站进行查找喔。
本文标签: