租号玩代理申请
A- A+

WordPress使用代码实现Bing的IndexNow插件功能,实现自动提交收录教程

2026年06月22日 建站相关 评论 2 条 阅读 139 次 打印

最近,bing也推出了类似百度提交收录的api,bing的indexnow收录插件,但是我不太想装插件,所以我就用豆包给我写了一段代码用来实现这个功能。

第一步:去bing获取你的KEY和下载KEY文件
登录bing站长后台,首先添加网站,验证完成以后,点击这个链接:https://www.bing.com/indexnow/getstarted

bing的indexnow首页

复制这个KEY,替换第2步中的代码中需要替换的KEY
bing的indexnow的获取KEY

第二步:把下面这些代码加入到你的主题的functions.php里

// Bing IndexNow 自动推送文章
function bing_indexnow_auto_submit($post_id) {
    // 跳过草稿、修订、自动保存
    if (wp_is_post_revision($post_id) || get_post_status($post_id) !== 'publish') {
        return;
    }
    $key = "你从bing后台获取到的key";
    $post_url = get_permalink($post_id);
    $api_endpoint = "https://www.bing.com/indexnow";

    $payload = [
        'host' => parse_url($post_url, PHP_URL_HOST),
        'key' => $key,
        'urlList' => [$post_url]
    ];

    $args = [
        'headers' => ['Content-Type' => 'application/json'],
        'body' => json_encode($payload),
        'timeout' => 10
    ];
    wp_remote_post($api_endpoint, $args);
}
// 发布、更新文章触发推送
add_action('save_post', 'bing_indexnow_auto_submit');

今天晚上我又用这段代码问了一下豆包,豆包又给了我一个修正版,这段和上面那段只用其中一段,放到functions.php里:

// Bing IndexNow 自动推送文章
function bing_indexnow_auto_submit($post_id) {
    // 跳过自动草稿、修订、未发布状态
    if (wp_is_post_autosave($post_id) || wp_is_post_revision($post_id)) {
        return;
    }
    $post = get_post($post_id);
    // 仅推送已发布文章/页面,过滤附件、菜单、自定义条目
    if (!in_array($post->post_type, ['post', 'page']) || $post->post_status !== 'publish') {
        return;
    }

    $key = "你从bing后台获取到的key";
    $post_url = get_permalink($post_id);
    $api_endpoint = "https://api.indexnow.org/indexnow"; // 官方标准接口,bing.com/indexnow是兼容跳转

    $payload = [
        'host' => parse_url(get_home_url(), PHP_URL_HOST), // 统一用站点主页域名,避免www冲突
        'key' => $key,
        'urlList' => [$post_url]
    ];

    $args = [
        'headers' => ['Content-Type' => 'application/json; charset=utf-8'],
        'body' => json_encode($payload),
        'timeout' => 5,
        'blocking' => false, // 异步请求,不卡住后台保存页面
        'sslverify' => true
    ];

    $response = wp_remote_post($api_endpoint, $args);
    // 调试日志(可注释关闭)
    if (is_wp_error($response)) {
        error_log('IndexNow推送失败:' . $response->get_error_message() . ' | URL:' . $post_url);
    }
}
// 发布、更新文章触发推送
add_action('save_post', 'bing_indexnow_auto_submit');

第三步:把你的KEY的TXT文件放到网站根目录下
就是下载下面那个TXT文件,不要修改,直接放入网站根目录
下载KEY的txt文件

实在不会的,你用官方的插件吧:
https://wordpress.org/plugins/indexnow/
或其他几个插件也可以:
IndexNow plugin
Yoast
RankMath
AIOSEO
SEOPress

注意:设置完了并不是即刻生效,我等了大约一天才可以从bing后台查看到数据。
bing index效果

从下面可以看到,我今天推送了3篇文章,他显示了2篇总数,其实很简单,第一篇没过早上8点,他还是按昨天计算的。

上面的修正版带调试日志,如何查看日志呢?

WordPress调试日志存储位置:
1. 日志文件路径
默认日志文件:
网站根目录/wp-content/debug.log

2. 必须先开启日志写入(两步配置 wp-config.php)
打开根目录 wp-config.php,找到 WP_DEBUG,改成下面完整配置:

// 开启调试
define( 'WP_DEBUG', true );
// 开启写入日志文件
define( 'WP_DEBUG_LOG', true );
// 关闭前台报错弹窗(避免访客看到报错)
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

WP_DEBUG_LOG = true:才会生成 debug.log
如果只开 WP_DEBUG 没开这条,日志只会输出页面,不会存文件
3. 几种特殊情况路径变化
自定义日志存放路径(可改到安全目录)

define( 'WP_DEBUG_LOG', '/www/wwwroot/你的网站目录/debug.txt' );

4. 查看 IndexNow 推送日志方法
发布 / 更新一篇文章触发推送
打开 /wp-content/debug.log
能看到类似记录:

[22-Jun-2026 xx:xx:xx UTC] IndexNow推送失败:xxx | URL:shturl.cc/JFSTWIvEr

5. 测试成功以后记得关闭和删除日志功能。

2 条留言  访客:1 条  站长:1 条

  1. 热衷于

    网上都说豆包傻, 不过我觉得她的幻像是有点过了, 但是你只要指出错误并且加上如 "不要画蛇添足" "你的想法完全跑偏了, 我的事实证明" "你仔细 review 揪出问题" "忽略之前你的思路重写, 按照" 这些提示词也能将就用, 毕竟她的多维度的技能还是挺好用的

    • im2828

      毕竟免费,那些要token的根本用不起。

给我留言

6 * 5 =
评论规范提醒