搜 索

dedecms实现更新文章后自动生成html地图与提交文章

编辑:QTOOL.NET日期:2019-08-21439

在使用dedecms制作的网站过程中,织梦自带了生成html地图功能,为了优化用户体验,每次更新完文章后需要手动生成html地图,我们该怎样更新或新建文章后自动更新html地图呢?
首先我们需要dede文件夹下的task_do.php文件,然后找到代码:
    if(!file_exists($tpl))
    {
        $tpl = $cfg_basedir.$cfg_templets_dir.'/default/index.htm';
        if(!file_exists($tpl)) exit("无法找到主页模板:$tpl ");
    }
    $GLOBALS['_arclistEnv'] = 'index';
    $pv->SetTemplet($tpl);
    $pv->SaveToHtml($homeFile);
    $pv->Close();
在代码的下方添加如下代码:
 
  include_once(DEDEINC."/arc.sgpage.class.php");
   $inum = 0;
  $qusql->Execute("ex","Select aid From 'dede_sgpage' ");
  while($row = $qusql->GetArray("ex")){
  $sgp = new sgpage($row['aid']);
  $sgp->SaveToHtml();
  $inum++;
  };
如果使用的不是默认的数据库表前缀需要将dede_sgpage中的dede_修改为我们自己定义的前缀。
最后保存即可,那么如果想要在更新文章的同时自动将新建的文章提交到搜索引擎中去,又该怎样实现.    
   
我们需要打开dede后台文件夹中的article_add.php文件在第262行中找到
 
if($artUrl=='')
    {
        $artUrl = $cfg_phpurl."/view.php?aid=$arcID";
    }
    ClearMyAddon($arcID, $title);
 
在找到的代码下方加入:
 
$pourl=$artUrl;
$pourl = explode(",",$pourl);
$api = 'api调用地址';//在搜索平台获取接口地址
$ch = curl_init();
$pooptions = array(
CURLOPT_URL => $api,
CURLOPT_POST =>true,
CURLOPT_RETURNTRANSFER =>true,
CURLOPT_POSTFIELDS => implode("\n", $pourl),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $pooptions);
$result = curl_exec($ch);
这样程序就会在我们每次新建文章后自动向引擎提交我们新建的文章,不用每次手动去提交更新的文章内容.
最后我们只需要对这些文件代码所作的修改进行保存,登陆后台后更新全站缓存即可.

TAG标签:dedecms
此文章由QTOOL.NET编辑
最新文章

热门标签