用代碼讓WordPress的某些文章只給搜尋引擎看

如果你想讓某些文章是為了SEO而寫的。
讓搜尋引擎抓爬的,不讓其他人閱讀。
那你可以使用以下代碼,放入主題的functions.php
就會出現這個圖片,勾選之後就ok囉
  1. // 用代碼讓WordPress的某些文章只給搜尋引擎看
  2. function ludouseo_add_custom_box() {
  3.   add_meta_box('ludou_se_only', '搜尋引擎專屬', 'ludou_se_only', 'post', 'side', 'low');
  4.   add_meta_box('ludou_se_only', '搜尋引擎專屬', 'ludou_se_only', 'page', 'side', 'low');
  5. }
  6. add_action('add_meta_boxes', 'ludouseo_add_custom_box');
  7. function ludou_se_only() {
  8.   global $post;
  9.   //加入驗證欄位
  10.   wp_nonce_field('ludou_se_only', 'ludou_se_only_nonce');
  11.   $meta_value = get_post_meta($post->ID, 'ludou_se_only', true);
  12.   if($meta_value)
  13.     echo '"ludou-se-only" type="checkbox" checked="checked" value="1" /> SEO專用';
  14.   else
  15.     echo '"ludou-se-only" type="checkbox" value="1" /> SEO專用';
  16. }
  17. // 保存選項設置
  18. function ludouseo_save_postdata($post_id) {
  19.   // 驗證
  20.   if ( !isset( $_POST['ludou_se_only_nonce']))
  21.     return $post_id;
  22.   $nonce = $_POST['ludou_se_only_nonce'];
  23.   // 驗證欄位是否合法
  24.   if (!wp_verify_nonce( $nonce, 'ludou_se_only'))
  25.     return $post_id;
  26.   // 判斷是否自動保存
  27.   if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
  28.       return $post_id;
  29.   // 驗證用戶許可權
  30.   if ('page' == $_POST['post_type']) {
  31.     if ( !current_user_can('edit_page', $post_id))
  32.       return $post_id;
  33.   }
  34.   else {
  35.     if (!current_user_can('edit_post', $post_id))
  36.       return $post_id;
  37.   }
  38.   // 更新設置
  39.   if(!empty($_POST['ludou-se-only']))
  40.     update_post_meta($post_id, 'ludou_se_only', '1');
  41.   else
  42.     delete_post_meta($post_id, 'ludou_se_only');
  43. }
  44. add_action('save_post', 'ludouseo_save_postdata');
  45. function do_ludou_se_only() {
  46.   // 本功能只對文章和頁面有效
  47.   if(is_singular()) {
  48.     global $post;
  49.     $is_robots = 0;
  50.     $ludou_se_only = get_post_meta($post->ID, 'ludou_se_only', true);
  51.     if(!empty($ludou_se_only)) {
  52.       // 下面是搜尋引擎判斷關鍵字陣列
  53.       // 有點簡單,自己優化一下吧
  54.       $bots = array(
  55.             'spider',
  56.             'bot',
  57.             'crawl',
  58.             'Slurp',
  59.             'yahoo-blogs',
  60.             'Yandex',
  61.             'Yeti',
  62.             'blogsearch',
  63.             'ia_archive',
  64.             'Google'
  65.             );
  66.       $useragent = $_SERVER['HTTP_USER_AGENT'];
  67.       if(!empty($useragent)) {
  68.         foreach ($bots as $lookfor) {
  69.           if (stristr($useragent, $lookfor) !== false) {
  70.             $is_robots = 1;
  71.             break;
  72.           }
  73.         }
  74.       }
  75.       // 如果不是搜尋引擎,就顯示錯誤資訊
  76.       // 已登入的用戶不受影響
  77.       if(!$is_robots && !is_user_logged_in()) {
  78.         wp_die('您無權查看此文!');
  79.       }
  80.     }
  81.   }
  82. }
  83. add_action('wp', 'do_ludou_se_only');
已經登入的會員,是可以看到的喔!

評論 (0)

此處尚未發表評論

留言

  1. 以遊客身份發表評論。 註冊登入到您的帳戶。
附件 (0 / 3)
分享您的位置