Y Y524资源站

Pbootcms必应推送插件源码免费下载: 加速收录,多倍流量助力SEO优化

Pbootcms免费插件下载:轻松实现全自动必应推送,可自定义推送时间及间隔,让你的网站更快被搜索引擎发现

2023-06-03 1427 次阅读 CMS教程

前言:

近期一篇名为《必应超越百度,成为中国第一搜索引擎》的文章在网络引起热议,当然也有不少专业人事表示这只是一个乌龙事件,认为美国网站研究机构 Statcounter 在5月份公布的统计数据中“微软的搜索引擎Bing(必应)以37.4%的市场份额超越百度的27.01% ,首次登上中国第一搜索引擎的宝座”的数据统计方法存在问题。

虽然百度在近几年的快速发展中为了挣钱使劲的在搜索页面中加入广告,或是在手机端强迫我下载百度APP,但作为一个只会用百度的我来说必应(bing)搜索引擎对于我而言太陌生了,同样的360搜索引擎也从来不用,唯一的例外是google搜索引擎,因为它能让我找到百度搜索找不到的内容。

但既然有人说了必应搜索超过了百度搜索而百度也有着不少的缺点,那么本着试一试的心态我打开了“Microsoft Edge”浏览器,因为我知道Microsoft Edge浏览器默认就是bing搜索引擎。

说真的,用过才发现使用必应搜索引擎找资料给我的感觉真的很NICE!!!为什么这么说呢?因为不论是找教程还是找学习资料我都能在bing搜索结果中很快的找到我需要的,而不是像百度搜索结果那样乱七八糟、还有看不见的广告,随时能让你迷路。


所以,我准备将自己的网站也接入必应的站长工具。

正好之前写了一篇《Pbootcms百度推送插件:定时全自动推送源码免费下载》,文章中给大家分享了怎么让PbootCMS管理系统实现全自动可定时百度推送功能,那么这次就分享一下怎么实现必应(bing)必应(bing)搜索引擎URL提交推送教程。

【还是划重点】

本文将介绍免费、好用的能实现全自动、定时自动向必应(bing)搜索引擎URL提交的方法(并附上源码下载链接)!

另外,本插件和上面提到的“百度推送方法”一样,源码只修改“ExtLabelController.php”一个文件,并且PbootCMS更新时不会更新或覆盖该文件,如果你需要百度的必应搜索引擎同时提交的话,可以自行参考《Pbootcms百度推送插件:定时全自动推送源码免费下载》将两个代码合并。

【Pbootcms必应(bing)搜索引擎URL提交功能实现教程】

第一步:打开“appsdmin iewdefaultsystemconfig.html”

1、找到“<li lay-id="t3">百度接口</li>”修改为“<li lay-id="t3">搜索引擎推送配置</li>”,这步不是必需,只是为了好看布局!

Pbootcms百度推送插件

2、找到并复制如下代码,放到下一行

<div class="layui-form-item">
    <label class="layui-form-label">快速收录token</label>
    <div class="layui-input-inline">
        <input type="text" name="baidu_ks_token" value="{$configs.baidu_ks_token.value}"placeholder="请输入快速收录token" class="layui-input">
    </div>
    <span class="layui-icon layui-icon-about tips" data-content="请到百度站长中心获取!"></span>
</div>

3、将复制的代码修改为正面内容:

<div class="layui-form-item">
    <label class="layui-form-label">必应收录token</label>
    <div class="layui-input-inline">
        <input type="text" name="bing_zz_token" value="{$configs.bing_zz_token.value}"placeholder="请输入必应收录token" class="layui-input">
    </div>
    <span class="layui-icon layui-icon-about tips" data-content='请到必应站长中心获取!'></span>
</div>

第二步:打开”appshomecontrollerExtLabelController.php“

1、找到 ”use coreasicController;“,在下面增加一行:

use appdminmodelsystemConfigModel;

2、找到”class ExtLabelController“,将其修改为”class ExtLabelController extends Controller“

3、找到”protected $content;“,在下面增加代码:

    private $model;
    public function __construct()
    {
        $this->model = new ConfigModel();
    }

4、找到方法”test()“,如下代码:

// 测试扩展单个标签
    public function test()
    {
        $this->content = str_replace('{pboot:userip}', get_user_ip(), $this->content);
    }

5、在”test(***){***}“后面增加代码:

public function auto_tool()
{
    $data = $this->model->getConfig();
    if (array_key_exists('expire_time',$data)) {
        $expire_time = $data["expire_time"];
        if (! $expire_time) {
            $expire_time = get_datetime(time() -60); // 如果字段存在,但值为空时 expire_time=当前时间-60s
            $this->model->modValue("expire_time", $expire_time);
        }
        if ($expire_time && strcmp($expire_time, get_datetime(time())) < 0) {
            ignore_user_abort(true);
            set_time_limit(7200);
            ob_start();
            ob_end_flush();
            flush();
            $rs1 = $this->post_bing();
            if ($rs1) {
                $expire_time = get_datetime(time() + 60 * 60 * 24); // 下一次执行时间
                $this->model->modValue("expire_time", $expire_time);
                return 'console.warn("必应推送结果:'.$rs1;
            }
        } else {
            return 'console.warn("时间未到,下次执行时间:'.$expire_time.'");';
        }
    } else {
        $expire_time = get_datetime(time() - 60 * 60 * 24); // 初始化执行时间
        $data = array(
            'name' => "expire_time",
            'value' => $expire_time,
            'type' => 2,
            'sorting' => 255,
            'description' => ''
        );
        $this->model->addConfig($data); //增加配置字段
    }
}

//必应推送
public function post_bing()
{   
    $domain = get_http_url();
    $urlList = [
        'siteUrl' => $domain, 'urlList' => []
    ];
    $ConfigData = $this->model->getConfig();
    if (array_key_exists('bing_zz_token',$ConfigData)) {
        $token = $ConfigData["bing_zz_token"];
        if (! $token) {
            alert_back('请先到系统配置中填写必应普通收录推送token值!');
        }
        if (!$sitemap_data = file_get_contents("$domain/sitemap.txt")) {
            alert_back('获取站点sitemap.txt失败,请检查!');
        }else{
            $value = explode("
", $sitemap_data);
            foreach ($value as $url) {
                $post_urls[] = $url;
            }
            $urlList["urlList"] = $post_urls;
        }
        $api = "https://ssl.bing.com/webmaster/api.svc/json/SubmitUrlbatch?apikey=$token";
        $result = $this->request($api, $urlList,"bing");
        var_dump($result); 
        if (array_key_exists('d',$result)) {
            return '成功推送' . count($post_urls) . '条!';
        }elseif(array_key_exists('ErrorCode',$result)){
            return '推送失败:'.$result->Message;
        } else {
            return '发生未知错误!';
        }
    }else {
        $data = array(
            'name' => "bing_zz_token",
            'value' => "",
            'type' => 2,
            'sorting' => 255,
            'description' => '必应站长密钥'
        );
        $this->model->addConfig($data); //增加配置字段
    }
}

// POST请求
function request($api, $urls, $type_)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $api);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    if ($type_ == "baidu") {
        curl_setopt($ch, CURLOPT_POSTFIELDS, $urls);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));
    } else {
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($urls));
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));
    }
    $result = curl_exec($ch);
    return json_decode($result);
}

第三步:在前端公共模板(一般是“footer.html”)底部添加下面代码:

<!--执行自动任务-->
<script src='/?p=/ExtLabel/auto_tool' async='async'></script>

至此,必应(bing)必应(bing)搜索引擎URL提交推送教程就结束了,最后到网站页面F12进入开发人员控制台,刷新页面就能查看到自动提交结果或打开“域名+/ExtLabel/auto_tool”触发提交!

Pbootcms百度推送插件

PbootCMS插件 必应推送 PbootCMS