php,function check_baidu_index($url) {, $ch = curl_init();, curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/s?wd=" . urlencode($url));, curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);, $output = curl_exec($ch);, curl_close($ch);, return strpos($output, '') !== false;,},,$posts = get_posts();,foreach ($posts as $post) {, if (check_baidu_index(get_permalink($post>ID))) {, echo "文章ID:" . $post>ID . " 已被百度收录";, } else {, echo "文章ID:" . $post>ID . " 未被百度收录";, },},
`,,这段代码首先定义了一个
check_baidu_index函数,用于检查给定的URL是否被百度收录。然后获取所有文章,遍历每篇文章,调用
check_baidu_index`函数检查文章是否被百度收录,并输出相应的结果。WordPress自动检查文章是否被百度收录【免插件】
在网站运营中,了解文章是否被搜索引擎收录是一个重要的环节,对于使用WordPress的站长来说,实现这一功能可以通过简单的代码来实现,而无需安装任何插件,下面将详细介绍如何在WordPress中实现自动检查文章是否被百度收录的功能。
1、编辑functions.php文件:登录到你的WordPress后台,然后进入外观 > 主题编辑器,找到当前主题的functions.php文件并进行编辑,在PHP标签<?php
之后添加以下代码:
function baidu_check($url) { global $wpdb; $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; $baidu_record = get_post_meta($post_id,'baidu_record',true); if( $baidu_record != 1){ $url='http://www.baidu.com/s?wd='.$url; $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,$url); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); $rs=curl_exec($curl); curl_close($curl); if(!strpos($rs,'没有找到')){ if( $baidu_record == 0){ update_post_meta($post_id, 'baidu_record', 1); } else { add_post_meta($post_id, 'baidu_record', 1, true); } return 1; } else { if( $baidu_record == false){ add_post_meta($post_id, 'baidu_record', 0, true); } return 0; } } else { return 1; } }
2、创建调用函数:在同一个functions.php文件中添加以下代码,用于在文章中显示是否被百度收录的信息:
function baidu_record() { if(baidu_check(get_permalink()) == 1) { echo '<a target="_blank" title="点击查看" rel="external nofollow" href="http://www.baidu.com/s?wd='.get_the_title().'">百度已收录</a>'; } else { echo '<a style="color:red;" rel="external nofollow" title="一键帮忙提交给百度,谢谢您!" target="_blank" href="http://zhanzhang.baidu.com/sitesubmit/index?sitename='.get_permalink().'">百度未收录</a>'; } }
3、在single.php文件中调用函数:编辑你的主题下的single.php文件,在你想要显示收录结果的位置添加以下代码并保存:
<?php baidu_record(); ?>
完成以上步骤后,当你的文章页面被访问时,它将自动检查该文章是否被百度收录,并在页面上显示相应的信息,如果文章已被百度收录,将显示“百度已收录”,否则将显示“百度未收录”并提供一个链接供用户提交至百度。
通过这种方法,你可以方便地为你的WordPress网站添加一个实用的功能,而无需依赖任何第三方插件,这不仅有助于提升网站的SEO效果,还能为用户提供更好的互动体验。
WordPress 自动检查文章是否被百度收录(免插件)
简介
在WordPress中,没有现成的插件可以直接检查文章是否被百度收录,我们可以通过编写一段简单的PHP代码来实现这一功能,以下是一个详细的步骤和代码示例。
步骤
1. 获取百度快照页面
百度快照页面通常形如:http://www.baidu.com/s?wd=文章标题
,我们需要根据文章标题构造这个URL。
2. 发送HTTP请求
使用PHP的cURL库发送HTTP请求到百度快照页面。
3. 解析返回的HTML
使用PHP的DOMDocument类解析返回的HTML内容,查找包含文章标题的元素。
4. 判断是否被收录
根据解析出的HTML内容判断文章是否被收录。
PHP代码示例
<?php function check_baidu_included($post_id) { // 获取文章标题 $post = get_post($post_id); $title = $post>post_title; // 构造百度快照URL $baidu_url = "http://www.baidu.com/s?wd=" . urlencode($title); // 初始化cURL会话 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $baidu_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 执行cURL会话 $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // 检查HTTP状态码 if ($http_code == 200) { // 解析HTML $dom = new DOMDocument(); @$dom>loadHTML($response); $xpath = new DOMXPath($dom); // 查找包含文章标题的元素 $query = "//div[@class='cabstract cabstract1']//a"; $elements = $xpath>query($query); // 检查是否找到标题 if ($elements>length > 0) { return true; // 文章被收录 } } return false; // 文章未被收录 } // 使用示例 $post_id = 123; // 假设文章ID为123 if (check_baidu_included($post_id)) { echo "文章已被百度收录。"; } else { echo "文章未被百度收录。"; } ?>
注意事项
1、上述代码仅为示例,实际使用时可能需要根据百度快照页面的结构调整XPath查询。
2、百度快照页面可能会变化,代码可能需要定期更新以适应变化。
3、检查频率不宜过高,以免对百度服务器造成不必要的压力。
通过以上步骤和代码,你可以在WordPress中实现自动检查文章是否被百度收录的功能。