39
产品文档
建站入门
购买问题
WordPress 免插件增加百度主动推送功能

一般我们的网站新动态的时候,百度并不会收录,百度主动来爬取我们的内容往往又需要较长的时间,所以百度提供了主动推送,大家可以去那里提交我们的数据,当然我们还有另外的方法,将推送代码嵌入我们的网站,更方便快捷。

我们可以先到https://ziyuan.baidu.com上选择你的站点,点击 链接提交 进入后 自动提交--主动推送(实时)--推送接口。

接口调用地址: http://data.zz.baidu.com/urls?site=https://*******.com&token=xxxxxxxxxx


把下面这段代码添加在主题的function.php里, 这里请换成你的网站的百度主动推送的域名及token值。

一、WrodPress 通用方式(PHP)


if(!function_exists('Baidu_Submit')){
    function Baidu_Submit($post_ID) {
        $WEB_TOKEN  = 'xxxxxxxxxxx';  //这里请换成你的网站的百度主动推送的token值
        $WEB_DOMAIN = get_option('home');
        //已成功推送的文章不再推送
        if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
        $url = get_permalink($post_ID);
        $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
        $request = new WP_Http;
        $result = $request->request( $api , array( 'method' => 'POST', 'body' => $url , 'headers' => 'Content-Type: text/plain') );
        $result = json_decode($result['body'],true);
        //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
        if (array_key_exists('success',$result)) {
            add_post_meta($post_ID, 'Baidusubmit', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_Submit', 0);
}


二、curl_init 方式(PHP)


if(!function_exists('Baidu_Submit') && function_exists('curl_init')) {
    function Baidu_Submit($post_ID) {
        $WEB_TOKEN='xxxxxxxxx';  //这里换成你的网站的百度主动推送的token值
        $WEB_DOMAIN=get_option('home');
        //已成功推送的文章不再推送
        if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
        $url = get_permalink($post_ID);
        $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
        $ch  = curl_init();
        $options =  array(
            CURLOPT_URL => $api,
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS => $url,
            CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
        );
        curl_setopt_array($ch, $options);
        $result = json_decode(curl_exec($ch),true);
        //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
        if (array_key_exists('success',$result)) {
            add_post_meta($post_ID, 'Baidusubmit', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_Submit', 0);
}


三、file_get_contents 方式(PHP)


if(!function_exists('Baidu_Submit')) {
    function Baidu_Submit($post_ID) {
        $WEB_TOKEN='xxxxxxxxx';  //这里换成你的网站的百度主动推送的token值
        $WEB_DOMAIN=get_option('home');
        //已成功推送的文章不再推送
        if(get_post_meta($post_ID,'Baidusubmit',true) == 1) return;
        $url = get_permalink($post_ID);
        $api = 'http://data.zz.baidu.com/urls?site='.$WEB_DOMAIN.'&token='.$WEB_TOKEN;
        $data = array (
            'http' => array (
                'method' => 'POST',
                'header'=> "Content-Type: text/plain",
                "Content-Length: ".strlen($url)."rn",
                'content' => $url
            )
        );
        $data = stream_context_create($data);
        $result = file_get_contents($api, false, $data);
        $result = json_decode($result,true);
        //如果推送成功则在文章新增自定义栏目Baidusubmit,值为1
        if (array_key_exists('success',$result)) {
            add_post_meta($post_ID, 'Baidusubmit', 1, true);
        }
    }
    add_action('publish_post', 'Baidu_Submit', 0);
}



这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!