远方的海
远方的海,WordPress,免费
2014 Aug 14 06 : 21

WordPress 首页排除(不显示)特定分类的文章 / 让搜索引擎跳过指定文章

您当前的位置: 首页 > WordPress > 正文
欢迎光临远方的海!您可能还对 WordPress建站免费资源最新IT动态 感兴趣,点击开启 悦读 模式。CTRL+D 快捷收藏本文,我们期待您再次光临!

我们写Wordpress博客的时候,有的时候就只想写一两段话,或者插一首音乐,这个时候显然不想让这种质量不是很高的文章出现在首页上!当然了,我也是遇见了这种问题。

现在给出一个首页排除指定分类文章的方法,把下面的代码加入主题的functions.php中:

//首页排除特定分类
function seavia_exclude_category_home( $query ) { 
if ( $query->is_home ) { 
$query->set( 'cat', '-1, -2' ); 
} 
return $query; 
} 
add_filter( 'pre_get_posts', 'seavia_exclude_category_home' );

代码中的 ‘-1, -2’ 表示排除1和2两个分类,更多分类用英文的,隔开,注意前面有-哦!接着保存一下即可!

当然也有方法让搜索引擎不去收录检测这类的文章:一样是在主题的functions.php里面加入以下代码(代码来源 @露兜博客)。

加完后在撰写文章的时候,显示如下:

Wordpress 首页排除(不显示)特定分类的文章 / 让搜索引擎跳过指定文章

// 需要说明的是,如果你的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');

Sven又找到了让某个分类不输出权重的方法:还是放在functions.php里面:

function nofollow_cat_posts($text) {
global $post;
        if( in_category(1) ) { // 将1替换成你要输出nofollow链接的目录id
                $text = stripslashes(wp_rel_nofollow($text));
        }
        return $text;
}
add_filter('the_content', 'nofollow_cat_posts');

好文!分享给朋友,或者点个赞吧~

文章信息

分类:WordPress

您可能也会喜欢

发表回复

Post Comment


  1. 屠龙 :

    这方法不错,学习了。

    2014-8-15
    • 远方的海水神 :

      :D 谢谢 屠龙哥的博客一种意气风发的姿态。很厉害。

      2014-8-15
  2. 鲜活 :

    很不错的技巧

    2014-8-15
  3. xnces :

    我就是来看看,欢迎到小站喝咖啡!

    2014-8-15
    • 远方的海水神 :

      好滴,你每次更新我都看了 ( ̄▽ ̄”)

      2014-8-15
      • xnces :

        其实我不是故意来水的,只不过那个今天中午来的时候,文章404了,评论也找不到,所以。。可能是数据库不大稳定吧!

        2014-8-15
        • 远方的海水神 :

          因为我改了固定链接,后面加上了html,所以原来的链接不能访问啦!

          2014-8-15
  4. xnces :

    每天都来坐坐,博主要准备咖啡。。

    2014-8-15
    • 远方的海水神 :

      XD前排免费派送咖啡可乐瓜子小板凳

      2014-8-15
  5. 凉拌炒蛋炒饭 :

    有那么一个专门的页面写零散的东西

    2014-8-15
  6. 2014-8-15
  7. 免费部落 :

    这个我用不到,不用排除!

    2014-8-15
    • 远方的海水神 :

      :D你那干货多,当然不用这么设置。

      2014-8-15