WordPress使用代码实现Bing的IndexNow插件功能,实现自动提交收录教程
最近,bing也推出了类似百度提交收录的api,bing的indexnow收录插件,但是我不太想装插件,所以我就用豆包给我写了一段代码用来实现这个功能。
第一步:去bing获取你的KEY和下载KEY文件
登录bing站长后台,首先添加网站,验证完成以后,点击这个链接:https://www.bing.com/indexnow/getstarted
第二步:把下面这些代码加入到你的主题的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文件,不要修改,直接放入网站根目录

实在不会的,你用官方的插件吧:
https://wordpress.org/plugins/indexnow/
或其他几个插件也可以:
IndexNow plugin
Yoast
RankMath
AIOSEO
SEOPress
注意:设置完了并不是即刻生效,我等了大约一天才可以从bing后台查看到数据。

从下面可以看到,我今天推送了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. 测试成功以后记得关闭和删除日志功能。



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