优秀的编程知识分享平台

网站首页 > 技术文章 正文

运用百度星火计划2.0保护我们的原创文章

nanyue 2024-08-04 16:54:46 技术文章 10 ℃

做为草根博客站长,原创是个永远不能绕过的话题!很多的站长都碰到过自己辛辛苦苦的原创文章被人剽窃、篡改、转载的尴尬经历。其实呢,在互联网上这种事儿几乎是司空见惯了,已经是见怪不怪的事儿了。只要做好了自己博客的品牌词建设,影响几乎是可以忽略不计的。目前来看保护原创还只是一个口号而已,对于草根博客来说能有的措施很少,百度星火计划2.0应该算是目前选择不多的选择了。

今天明月就借【张戈博客】里的文章【WordPress针对百度星火计划2.0原创保护的优化措施】这个花献给大家,就算是一个参考吧,不敢保证一定可以维护你原创的利益,仅仅是提供一个方法而已。

其实原理很简单,就是按照百度官方的要求对我们的原创文章加上原创识别<meta>来让百度可以锁定“原创”文章的出处、链接和作者。也就是说是针对百度搜索引擎的,如果你的原创文章被百度识别到了,那么就可以在“星火计划2.0_百度站长平台”里看到原创收录保护的情况。(说实话,明月也是才开始使用这个代码的,所以具体效果是什么样?我也不知道)

将下面的代码加到主题的function.php里即可,都是自动的,我们只需要在发布文章是记得根据原创与否加上自定义栏目author(值可以随便填写)就可以了。

注:下面代码开始第11行的'author'是个WP文章的自定义栏目是用来进行是否原创的参数使用的,也就是说如果文章有author这个自定义栏目即表明此文不是原创文章,反之则是原创文章加入百度原创标记。

  1. /**

  2. * WordPress 星火计划原创保护专用META优化代码(最终版) By 张戈博客

  3. * 文章地址:https://zhangge.net/5084.html

  4. */

  5. add_action('wp_head', 'starfire',0);

  6. if(!function_exists('starfire')){

  7. function starfire(){

  8. //新增判断,如果是原创文章才加入星火计划META申明

  9. global $wpdb;

  10. $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;

  11. /*下面的'author'是个WP文章的自定义栏目是用来进行是否原创的参数使用的,也就是说如果文章有author这个自定义栏目即表明此文不是原创文章,反之则是原创文章加入百度原创<meta>标记*/

  12. $copy = get_post_meta($post_id , 'author', true);

  13. if (is_singular() && emptyempty($copy)) {

  14. date_default_timezone_set('PRC');

  15. echo '<meta property="og:type" content="article"/>

  16. <meta property="article:published_time" content="'.get_the_date('c').'"/>

  17. <meta property="og:release_date" content="'.get_the_date('c').'"/>

  18. <meta property="article:author" content="';bloginfo('name'); echo '" />';

  19. echo '<meta property="og:author" content="';bloginfo('name');echo '" />';

  20. echo '<meta property="og:url" content="';the_permalink(); echo '"/>';

  21. //输出文章标题+分隔符+网站名称,不喜欢这种形式的请自行改造(如果不需要这个标签,请删除以下三行)。

  22. echo '<meta property="og:title" content="'.trim(wp_title('',0)).' | '; bloginfo('name'); echo '" />';

  23. //输出博客名称,如果想改成其他内容,比如作者请自行修改 bloginfo('name')

  24. echo '<meta property="article:published_first" content="';bloginfo('name');echo ',';

  25. the_permalink();

  26. //默认截取文章220个字作为摘要,可以自行修改下行220为其他整数

  27. echo '" /><meta property="og:description" content="'.get_mypost_excerpt($post_id, 220).'……" />

  28. <meta property="og:image" content="'.get_mypost_thumbnail($post_id).'" />

  29. <meta itemprop="image" content="' . get_mypost_thumbnail($post_id) . '" />';

  30. }

  31. }

  32. }

  33. /**

  34. * WordPress 获取文章摘要整理版 By 张戈博客

  35. */

  36. function get_mypost_excerpt($post_ID,$len){

  37. if (!function_exists('utf8Substr')) {

  38. function utf8Substr($str, $from, $len) {

  39. return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.

  40. '((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',

  41. '$1',$str);

  42. }

  43. }

  44. if(!$post_content){

  45. $post = get_post($post_ID);

  46. $post_content = $post->post_content;

  47. }

  48. if ($post->post_excerpt) {

  49. $description = $post->post_excerpt;

  50. } else {

  51. if(preg_match('/<p>(.*)<\/p>/iU',trim(strip_tags($post->post_content,"<p>")),$result)){

  52. $post_content = $result['1'];

  53. } else {

  54. $post_content_r = explode("\n",trim(strip_tags($post->post_content)));

  55. $post_content = $post_content_r['0'];

  56. }

  57. $description = utf8Substr($post_content,0,$len);

  58. return $description;

  59. }

  60. }

  61. /**

  62. * WordPress 获取文章图片加强版 By 张戈博客

  63. */

  64. function get_mypost_thumbnail($post_ID){

  65. if (has_post_thumbnail()) {

  66. $timthumb_src = wp_get_attachment_image_src( get_post_thumbnail_id($post_ID), 'full' );

  67. $url = $timthumb_src[0];

  68. } else {

  69. if(!$post_content){

  70. $post = get_post($post_ID);

  71. $post_content = $post->post_content;

  72. }

  73. preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', do_shortcode($post_content), $matches);

  74. if( $matches && isset($matches[1]) && isset($matches[1][0]) ){

  75. $url = $matches[1][0];

  76. }else{

  77. $url = '';

  78. }

  79. }

  80. return $url;

  81. }

至此,我们就完成了我们博客原创文章的保护了,只要原创文章被百度识别保护,就不用担心被剽窃了。


另外有人反映代码:

  1. $copy = get_post_meta($post_id , 'author', true);

  2. if (is_singular() && emptyempty($copy))

返回值有时会是无效的或者没有返回值,明月以前也碰到过,现在换了主题后反而正常了,很怪异。不过,【张戈博客】给出了修正的代码如下:

将以下代码加入functions.php里。

  1. function get_meta_key(){

  2. global $wpdb;

  3. $post_id = ( null === $post_id ) ? get_the_ID() : $post_id;

  4. $copy = get_post_meta($post_id , 'author', true);

  5. return $copy;

  6. }

然后将下面的代码:

  1. $copy = get_post_meta($post->ID, 'author', true);

改成:

  1. $copy = get_meta_key();

这样一来就可以正常的判断了。

明月的博客于前天晚上已经启用这段代码了,至于说效果我只能是拭目以待了,剩下的就是多多的原创内容了,让我们静静的等待吧!

源代码来自【张戈博客】

Tags:

最近发表
标签列表