向百度提交资源有主动推送、自动推送、SITEMAP 三种方式。自动推送是百度站长平台最新推出的轻量级链接提交组件,只需将自动推送的 JS 代码放置在站点每一个页面源代码中,当页面被访问时,页面链接会自动推送给百度。SITEMAP 方式就不细说了,都知道。主动推送方式是实时的,效果最好,百度站长平台上有各种推送的示例代码,下面就是 WordPress 中主动推送的 PHP 代码,需要 PHP 支持 CURL 扩展。

/**
 * 提交百度收录
 */
function submitBaidu( $post_id, $post ) {
    
    $api = '推送接口调用地址';
    $url = get_permalink( $post_id );
    
    $ch  = curl_init();
    $ops = [
        CURLOPT_URL  => $api,
        CURLOPT_POST => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS => $url,
        CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],
    ];
    curl_setopt_array( $ch, $ops );
    $result = curl_exec( $ch );
    curl_close( $ch );
    
    //* 写入错误日志
    if ( strpos( $result, 'error' ) ) {
        file_put_contents( dirname( __FILE__ ) . 'submit-baidu-error.txt', 'URL:' . $url . PHP_EOL . 'RES:' . $result . PHP_EOL . PHP_EOL, FILE_APPEND );
    }
    
}
add_action( 'publish_post', 'submitBaidu', 10, 2 ); 
add_action( 'publish_future_post', 'submitBaidu' );

上述代码加入 FUNCTIONS.PHP 或其他文件中即可,“推送接口调用地址”替换为百度站长平台给的地址即可,格式如下:http://data.zz.baidu.com/urls?site=https://www.xxx.com&token=xxx。publish_post 用于发布文章,publish_future_post 用于定时发布文章。发布文章时如果有其他动作或过滤器会提交多次,一般没影响。比如本主题自带的文章别名转换功能在转换文章别名为英文时会导致向百度推送中文别名和转换为英文后的两个网址,加一个条件判断,启用别名转换后中文标题的直接跳过推送就解决了。使用时如果不确定,可先注释掉推送代码后修改下日志写入条件,根据日志来调试下就行了。