目录
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看,wordpress搜索引擎
您可能感兴趣的文章:
首页 后端开发 php教程 WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看,wordpress搜索引擎_PHP教程

WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看,wordpress搜索引擎_PHP教程

Jul 12, 2016 am 09:01 AM
wordpress 搜索引擎

WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看,wordpress搜索引擎

对搜索引擎隐藏特定的文章
这个问题的来源是这样的:

众所周知,随着搜索引擎的改良,会越来越排斥采集和伪原创,尤其是百度还推出了起源算法,对采集站进行K站等措施。如果被贴上采集站的标签,所有的努力可能付诸东流。

相信很多站长,也想多一些原创内容,并不想全部靠采集别人的文章。然而一个新站,尤其是个人站长,其内容的充实速度一定很慢,我们做站不仅要讨好搜索引擎,更要讨好读者。如果读者不能在你的站内得到比较充实丰富的信息,那体验肯定不好。其实各大名站老站,一样有相当比例的采集或改编内容,这符合互联网的共享精神。各大电视台和报纸也大部分是转载和文摘,只要摘得好符合了特定需求的内容需要,就是有价值的。

关键在于:不要用采集的文章来为自己的网站骗取搜索流量。这应该是符合互联网道德规范和共识的。如果只让原创的内容参与搜索引擎的游戏规则,而非原创部分屏蔽搜索引擎。这样就能平称地满足搜索引擎、网站主、用户三者的利益。

于是问题归结于一点:如何有效地、可靠地让“部分文章屏蔽搜索引擎”?

我不知道这是不是一个比较共性的问题,如果一个网站,既希望通过丰富的文章来满足受众,但又怕被搜索引擎判断为采集站,那这个就是一个真真切切要面对的、关键的、核心的、关系到网站生存发展的大问题。

最近也一直在学习相关方面的知识,以个人浅见,屏蔽搜索引擎有几类方式:
一、用robots.txt
二、WP的站可以判断用户特征(看了你这篇博文后想到的)
三、通过JS封装链接
四、通过重定向,比如短链接、PHP后台重定向等

对比以上几种方式,
第一种方法:robots.txt好比在门上贴了封条:“嘿,蛛蛛,我这儿有些内容是不让你检索的”。这是所谓君子协定,搜索引擎一定有能力去看你贴着封条门内的东西,只是它不收录罢了。为了判断一个站是否有大量的采集内容,蛛蛛或许会有窥探的动机。

这种方法技术实现的成本最低,也应该能满足大多数情况。好象百度在这方面的操守还是可以放心的,比如不索引淘宝的内容,而且也很痛恨360对百度内容的索引。

这个方法进一步的问题是:
在WP建的站中,如何可以高效率地让“部分文章屏蔽搜索引擎”?
1、文章标题加特征:比如每篇文章的标题中加一个特殊字符,这个方法可行吗,robots.txt用disallow:*特殊字条*就可以吗?
2、文章的标签识别:这个在操作层面好象是最最方便的,可是标签似乎是动态的标记,无法在robotx.txt中筛选?
3、文章放进特定的目录:这个robots.txt比较好写的,然而在WP文章内容管理时如何简易地操作?

第二种方法:好比是查看进门者的身份证,如果访问者是搜索引擎,那么就禁止通行。这种方法是对WP专用的,然后它的好处是可以非常详细地区别对待,比如百度对采集的态度比较紧,而GOOGLE不太一样,那有些文章就可以对百度关门而对谷歌开门。另外一个比较大的优点是,可以把判断集成在WP环境中,比如通过插件或主题让操作自动化。

第三种方法:好比是在门上换了一个门牌,搜索引擎只知道机械地去跟踪门牌上的号码,而浏览器却通过JS把门牌指向到另一个正确的入口了。然而:搜索引擎对JS的分析能力可能越来越强了,而且从谷歌的某些声明中来看,搜索引擎也不太喜欢你的内容对人和搜索引擎不一样。
这个方法大量地用在淘宝客链接的隐藏方面,这个方法的有效期估计不太长,而且操作比较麻烦,比较适合静态的单独页面,不太适合WP这样的数据库组织文章的架构。

第四种方法:好比是给门牌号加了密,只有你敲门(点击)了,才给你换成正确的门牌号。一般的访问者一定会点击,而搜索引擎不会模拟点击这个动作。
这种方法相对彻底和“安全”,缺点是:
1、和第三方法一样操作有些复杂,适合静态的单独页面,或页面中局部的链接,不太适合WP的环境。
2、过多的重定向,应该会消耗服务器的运算资源,积少成多,如果大量的文章都要进行一次重定向,服务器可能会不堪重负。

实现代码

具体怎么实现WordPress 对搜索引擎隐藏特定的文章呢?废话不多说,直接上PHP代码,放到当前主题的functions.php中即可使用(用UTF-8编码另存为):

// 需要说明的是,如果你的WordPress站点开启了页面缓存,此功能无效

function ludouse_add_custom_box() {
 if (function_exists('add_meta_box')) {  
  add_meta_box('ludou_allow_se', '搜索引擎', 'ludou_allow_se', 'post', 'side', 'low');
  add_meta_box('ludou_allow_se', '搜索引擎', 'ludou_allow_se', 'page', 'side', 'low');
 }
}
add_action('add_meta_boxes', 'ludouse_add_custom_box');

function ludou_allow_se() {
 global $post;
 
 //添加验证字段
 wp_nonce_field('ludou_allow_se', 'ludou_allow_se_nonce');
 
 $meta_value = get_post_meta($post->ID, 'ludou_allow_se', true);
 if($meta_value)
  echo '<input name="ludou-allow-se" type="checkbox" checked="checked" value="1" /> 屏蔽搜索引擎';
 else
  echo '<input name="ludou-allow-se" type="checkbox" value="1" /> 屏蔽搜索引擎';
}

// 保存选项设置
function ludouse_save_postdata($post_id) {
 // 验证
 if ( !isset( $_POST['ludou_allow_se_nonce']))
  return $post_id;

 $nonce = $_POST['ludou_allow_se_nonce'];

 // 验证字段是否合法
 if (!wp_verify_nonce( $nonce, 'ludou_allow_se'))
  return $post_id;

 // 判断是否自动保存
 if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
   return $post_id;

 // 验证用户权限
 if ('page' == $_POST['post_type']) {
  if ( !current_user_can('edit_page', $post_id))
   return $post_id;
 }
 else {
  if (!current_user_can('edit_post', $post_id))
   return $post_id;
 }
 
 // 更新设置
 if(!empty($_POST['ludou-allow-se']))
  update_post_meta($post_id, 'ludou_allow_se', '1');
 else
  update_post_meta($post_id, 'ludou_allow_se', '0');
}
add_action('save_post', 'ludouse_save_postdata');

// 对于设置不允许抓取文章和页面
// 禁止搜索引擎抓取,返回404
function do_ludou_allow_se() {
 // 本功能只对文章和页面有效
 if(is_singular()) {
  global $post;
  $is_robots = 0;
  $ludou_allow_se = get_post_meta($post->ID, 'ludou_allow_se', true);

  if(!empty($ludou_allow_se)) {
   // 下面是爬虫Agent判断关键字数组
   // 有点简单,自己优化一下吧
   $bots = array(
      'spider',
      'bot',
      'crawl',
      'Slurp',
      'yahoo-blogs',
      'Yandex',
      'Yeti',
      'blogsearch',
      'ia_archive',
      'Google',
      'baidu'
      );
  
   $useragent = $_SERVER['HTTP_USER_AGENT'];
  
   if(!empty($useragent)) {
    foreach ($bots as $lookfor) {
     if (stristr($useragent, $lookfor) !== false) {
      $is_robots = 1;
      break;
     }
    }
   }

   // 如果当前文章/页面禁止搜索引擎抓取,返回404
   // 当然你可以改成403
   if($is_robots) {
    status_header(404);
    exit;
   }
  }
 }
}
add_action('wp', 'do_ludou_allow_se');

登录后复制

使用方法

成功添加以上代码到当前主题的functions.php后,我们就可以正常使用了,完全傻瓜式。在WordPress后台文章和页面的编辑页面,右边栏底部我们可以看到这样的选框:

20151231152053845.png (287×82)

如果当前文章/页面需要禁止搜索引擎抓取,勾选即可。勾选后,当此文章/页面被搜索引擎访问时就会返回404状态,无任何内容。如果你不喜欢给搜索引擎返回404,担心死链太多影响SEO,可以将代码中的:

status_header(404);
exit;
登录后复制

改成:

echo "<meta name=\"robots\" content=\"noindex,noarchive\" />\n";
登录后复制

再将:

add_action('wp', 'do_ludou_allow_se');
登录后复制

改成:

add_action('wp_head', 'do_ludou_allow_se');
登录后复制

这样就直接在网页的head部分添加meta声明:

<meta name="robots" content="noindex,noarchive" />
登录后复制

告诉搜索引擎不要索引本页面、不要显示快照。需要注意的是,你的主题目录下的header.php中必须有以下代码:

wp_head();

登录后复制


设置文章只允许搜索引擎查看
有些文章只是为了SEO才发布的,想让这些文章只允许搜索引擎抓取,普通的访客无法查看,在WordPress中如何做到?

实现代码

如果你的WordPress站点未开启页面缓存,这个需求也不难实现,我们可以参考上面对搜索引擎隐藏特定的文章中的代码,稍作修改即可。在当前主题的functions.php中添加以下php代码,用UTF8编码保存:

// 给文章和页面的编辑页添加选项
function ludouseo_add_custom_box() {  
 add_meta_box('ludou_se_only', '搜索引擎专属', 'ludou_se_only', 'post', 'side', 'low');
 add_meta_box('ludou_se_only', '搜索引擎专属', 'ludou_se_only', 'page', 'side', 'low');
}
add_action('add_meta_boxes', 'ludouseo_add_custom_box');

function ludou_se_only() {
 global $post;
 
 //添加验证字段
 wp_nonce_field('ludou_se_only', 'ludou_se_only_nonce');
 
 $meta_value = get_post_meta($post->ID, 'ludou_se_only', true);
 if($meta_value)
  echo '<input name="ludou-se-only" type="checkbox" checked="checked" value="1" /> 只允许搜索引擎查看';
 else
  echo '<input name="ludou-se-only" type="checkbox" value="1" /> 只允许搜索引擎查看';
}

// 保存选项设置
function ludouseo_save_postdata($post_id) {
 // 验证
 if ( !isset( $_POST['ludou_se_only_nonce']))
  return $post_id;
 $nonce = $_POST['ludou_se_only_nonce'];
 
 // 验证字段是否合法
 if (!wp_verify_nonce( $nonce, 'ludou_se_only'))
  return $post_id;
  
 // 判断是否自动保存
 if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
   return $post_id;
   
 // 验证用户权限
 if ('page' == $_POST['post_type']) {
  if ( !current_user_can('edit_page', $post_id))
   return $post_id;
 }
 else {
  if (!current_user_can('edit_post', $post_id))
   return $post_id;
 }
 
 // 更新设置
 if(!empty($_POST['ludou-se-only']))
  update_post_meta($post_id, 'ludou_se_only', '1');
 else
  delete_post_meta($post_id, 'ludou_se_only');
}
add_action('save_post', 'ludouseo_save_postdata');

function do_ludou_se_only() {
 // 本功能只对文章和页面有效
 if(is_singular()) {
  global $post;
  $is_robots = 0;
  $ludou_se_only = get_post_meta($post->ID, 'ludou_se_only', true);
  
  if(!empty($ludou_se_only)) {
   // 下面是搜索引擎Agent判断关键字数组
   // 有点简单,自己优化一下吧
   $bots = array(
      'spider',
      'bot',
      'crawl',
      'Slurp',
      'yahoo-blogs',
      'Yandex',
      'Yeti',
      'blogsearch',
      'ia_archive',
      'Google'
      );
  
   $useragent = $_SERVER['HTTP_USER_AGENT'];
  
   if(!empty($useragent)) {
    foreach ($bots as $lookfor) {
     if (stristr($useragent, $lookfor) !== false) {
      $is_robots = 1;
      break;
     }
    }
   }
   
   // 如果不是搜索引擎,就显示错误信息
   // 已登录的用户不受影响
   if(!$is_robots && !is_user_logged_in()) {
    wp_die('您无权查看此文!');
   }
  }
 }
}
add_action('wp', 'do_ludou_se_only');

登录后复制

使用方法

成功添加以上代码到当前主题的functions.php后,我们就可以正常使用了,完全傻瓜式。在WordPress后台文章和页面的编辑页面,右边栏底部我们可以看到这样的选框:

20151231152211569.png (290×79)

如果当前文章/页面需要禁止搜索引擎抓取,勾选即可。勾选后,当此文章/页面被普通访客访问时就会显示下面的错误信息(搜索引擎和已登录用户不受影响):

20151231152234095.png (443×260)

您可能感兴趣的文章:

  • 讲解WordPress中用于获取评论模板和搜索表单的PHP函数

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1087276.htmlTechArticleWordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看,wordpress搜索引擎 对搜索引擎隐藏特定的文章 这个问题的来源是这样的: 众所周知...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
wordpress文章列表怎么调 wordpress文章列表怎么调 Apr 20, 2025 am 10:48 AM

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

wordpress主机怎么建站 wordpress主机怎么建站 Apr 20, 2025 am 11:12 AM

要使用 WordPress 主机建站,需要:选择一个可靠的主机提供商。购买一个域名。设置 WordPress 主机帐户。选择一个主题。添加页面和文章。安装插件。自定义您的网站。发布您的网站。

wordpress主题头部图片如何更换 wordpress主题头部图片如何更换 Apr 20, 2025 am 10:00 AM

更换 WordPress 主题头部图片的分步指南:登录 WordPress 仪表盘,导航至“外观”&gt;“主题”。选择要编辑的主题,然后单击“自定义”。打开“主题选项”面板并寻找“网站标头”或“头部图片”选项。单击“选择图像”按钮并上传新的头部图片。裁剪图像并单击“保存并裁剪”。单击“保存并发布”按钮以更新更改。

wordpress怎么查看前端 wordpress怎么查看前端 Apr 20, 2025 am 10:30 AM

可以通过以下方法查看 WordPress 前端:登录仪表盘并切换到“查看站点”选项卡;使用无头浏览器自动化查看过程;安装 WordPress 插件在仪表盘内预览前端;通过本地 URL 查看前端(如果 WordPress 在本地设置)。

wordpress怎么导入源码 wordpress怎么导入源码 Apr 20, 2025 am 11:24 AM

导入 WordPress 源码需要以下步骤:创建子主题以进行主题修改。导入源码,覆盖子主题中的文件。激活子主题,使其生效。测试更改,确保一切正常。

wordpress屏蔽ip的插件有哪些 wordpress屏蔽ip的插件有哪些 Apr 20, 2025 am 08:27 AM

WordPress 屏蔽 IP 的插件选择至关重要。可考虑以下类型:基于 .htaccess:高效,但操作复杂;数据库操作:灵活,但效率较低;基于防火墙:安全性能高,但配置复杂;自行编写:最高控制权,但需要更多技术水平。

wordpress编辑日期怎么取消 wordpress编辑日期怎么取消 Apr 20, 2025 am 10:54 AM

WordPress 编辑日期可以通过三种方法取消:1. 安装 Enable Post Date Disable 插件;2. 在 functions.php 文件中添加代码;3. 手动编辑 wp_posts 表中的 post_modified 列。

wordpress怎么写页头 wordpress怎么写页头 Apr 20, 2025 pm 12:09 PM

在WordPress中创建自定义页头的步骤如下:编辑主题文件“header.php”。添加您的网站名称和描述。创建导航菜单。添加搜索栏。保存更改并查看您的自定义页头。

See all articles