如何实现织梦CMS实时向百度推送Sitemap地址?

织梦CMS可以通过安装百度推送插件或使用API接口,将sitemap实时推送给百度。

织梦CMS实时推送Sitemap地址给百度

如何实现织梦CMS实时向百度推送Sitemap地址?

概述

织梦CMS(DedeCMS)是一款广泛使用的开源内容管理系统,但默认情况下并不支持自动将新生成的sitemap地址推送给搜索引擎,为了提高网站内容的收录速度和原创保护,可以通过手动或自动的方式实现实时推送sitemap地址给百度。

方法一:手动创建文件推送

1、创建PHP文件:在织梦CMS根目录下创建一个名为tuisong.php的文件,并在其中添加以下代码:

<?php
require_once ("include/common.inc.php");
require_once "include/arc.partview.class.php";
require_once('include/charset.func.php');
$year = date("Y");
$month = date("m");
$day = date("d");
$dayBegin = mktime(0,0,0,$month,$day,$year); //当天开始时间戳
$dayEnd = mktime(23,59,59,$month,$day,$year); //当天结束时间戳
$query = "SELECT arch.id, types.typedir FROM dede_arctype AS types INNER JOIN dede_archives AS arch ON types.id = arch.typeid WHERE pubdate <= $dayEnd AND pubdate >= $dayBegin";
$urls = "";
$dsql>Execute('arch.id, types.typedir', $query);
while ($row = $dsql>GetArray('arch.id, types.typedir')) {
    $urls .= "http://www.yourdomain.com".str_replace("{cmspath}", "", $row['typedir'])."/".$row[id].".html".",";
}
$urls = substr($urls, 0, 1);
$urls = explode(",", $urls);
$api = 'http://data.zz.baidu.com/urls?site=yourdomain&token=yourtoken'; //前边的site换成自己的site,xxx换成自己的密钥
$ch = curl_init();
$options = array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("
", $urls),
    CURLOPT_HTTPHEADER => array('ContentType: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result.'<br>'.count($urls);
?>

2、访问文件:每天访问tuisong.php文件,即可将当天的全部文章链接推送到百度搜索引擎。

方法二:发布文章时自动推送

1、修改article_add.php文件:找到并打开织梦CMS后台的article_add.php文件,找到第262行左右的位置,加入以下代码:

// 百度主动推送
if ($artUrl != '') {
    $urls[] = 'http://www.yourdomain.com'.$artUrl; //前面域名换成你自己的域名
    $api = 'http://data.zz.baidu.com/urls?site=yourdomain&token=yourtoken'; //前边site换成自己的site,xxx换成自己的密钥
    $ch = curl_init();
    $options = array(
        CURLOPT_URL => $api,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS => implode("
", $urls),
        CURLOPT_HTTPHEADER => array('ContentType: text/plain'),
    );
    curl_setopt_array($ch, $options);
    $result = curl_exec($ch);
    echo $result;
}

2、保存并测试:保存文件后,每次发布新文章时,系统会自动将新文章的链接推送给百度。

如何实现织梦CMS实时向百度推送Sitemap地址?

FAQs

问题1:如何获取百度站长平台的准入密钥?

答:要获取百度站长平台的准入密钥,首先需要登录百度站长平台(https://ziyuan.baidu.com/),然后按照以下步骤操作:

1、添加并验证网站:点击“我的网站” > “添加网站”,输入您的网站域名并完成验证。

2、获取准入密钥:验证通过后,进入“链接提交” > “主动推送”页面,您将看到站点的准入密钥,记下这个密钥,用于配置织梦CMS的推送功能。

问题2:推送失败怎么办?

答:如果推送失败,可以按照以下步骤进行排查和解决:

1、检查密钥:确保您在推送代码中使用的准入密钥是正确的,并且没有拼写错误。

如何实现织梦CMS实时向百度推送Sitemap地址?

2、查看返回码:根据百度接口的返回码,判断具体的错误原因,状态码401表示token无效,需要重新获取并替换。

3、日志记录:在推送代码中添加日志记录功能,记录每次推送的详细信息,便于后续分析问题。

4、联系百度支持:如果以上方法都无法解决问题,可以尝试联系百度站长平台的支持团队,寻求帮助。

参数 说明 示例
sitemap_url 百度推送的 Sitemap 地址 http://www.example.com/sitemap.xml
sitemap_lastmod Sitemap 最后一次修改时间 20230101T00:00:00Z
sitemap_changefreq Sitemap 更新频率 daily
sitemap_priority Sitemap 中某个页面的优先级 0.8
sitemap_news 是否为新闻 Sitemap false
sitemap_news_pubdate 新闻发布时间 20230101T00:00:00Z
sitemap_news_source 新闻来源 Example News Source
sitemap_news_category 新闻分类 Technology

示例仅为参考,实际推送时需要根据您的网站结构和需求进行调整。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1192766.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希新媒体运营
上一篇 2024-10-09 15:03
下一篇 2024-10-09 15:06

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入