【Principle】WPPなしで人気記事を表示できたら表示が早い!

ブログ

【Principle】WPPなしで人気記事を表示できたら表示が早い!

プラグインはできるだけ少ないほうがいいです。

プラグインは便利だけど使いすぎないほうがいい。

とりあえずサーバーに負荷がかかるプラグインをやめましょう。

無料テーマのPrincipleを使っています。

functions.phpに追記してカスタムフィールドで人気記事を表示しています。

 

人気記事は表示しなくてもいい!

一番簡単なのは人気記事の表示をやめることです。

プラグインなしで人気記事が表示できるCocoonに変えてもいいと思います。

有料テーマのSANGOでも人気記事をプラグインなしで表示できます。

ですがPrincipleのままプラグインなしで人気記事を表示しました。

 

このブログのfunctions.phpに追記したソース


/* 人気記事ランキング */	
function manage_posts_columns($columns) {
$columns['post_views_count'] = 'view数';
$columns['thumbnail'] = 'サムネイル';
return $columns;
}
function add_column($column_name, $post_id) {
  /*View数呼び出し*/
  if ( $column_name == 'post_views_count' ) {
      $stitle = get_post_meta($post_id, 'post_views_count', true);
    }
    /*サムネイル呼び出し*/
  if ( $column_name == 'thumbnail') {
    $thumb = get_the_post_thumbnail($post_id, array(100,100), 'thumbnail');
  }
   /*ない場合は「なし」を表示する*/
  if ( isset($stitle) && $stitle ) {
    echo attribute_escape($stitle);
  }
  else if ( isset($thumb) && $thumb ) {
    echo $thumb;
  }
  else {
    echo __('None');
  }
}
add_filter( 'manage_posts_columns', 'manage_posts_columns' );
add_action( 'manage_posts_custom_column', 'add_column', 10, 2 );

function set_post_views($postID) {
  $count_key = 'post_views_count';
  $count = get_post_meta($postID, $count_key, true);
  if($count==''){
      $count = 0;
      delete_post_meta($postID, $count_key);
      add_post_meta($postID, $count_key, '0');
  }else{
    $count++;
    update_post_meta($postID, $count_key, $count);
  }
}

//クローラーのアクセスを判別するために追記
function is_bot() {
  $ua = $_SERVER['HTTP_USER_AGENT'];
  
  $bot = array(
    'Googlebot',
    'Yahoo! Slurp',
    'Mediapartners-Google',
    'msnbot',
    'bingbot',
    'MJ12bot',
    'Ezooms',
    'pirst; MSIE 8.0;',
    'Google Web Preview',
    'ia_archiver',
    'Sogou web spider',
    'Googlebot-Mobile',
    'AhrefsBot',
    'YandexBot',
    'Purebot',
    'Baiduspider',
    'UnwindFetchor',
    'TweetmemeBot',
    'MetaURI',
    'PaperLiBot',
    'Showyoubot',
    'JS-Kit',
    'PostRank',
    'Crowsnest',
    'PycURL',
    'bitlybot',
    'Hatena',
    'facebookexternalhit',
    'NINJA bot',
    'YahooCacheSystem',
    'NHN Corp.',
    'Steeler',
    'DoCoMo',
  );
  foreach( $bot as $bot ) {
    if (stripos( $ua, $bot ) !== false){
      return true;
    }
  }
  return false;
}

スタムフィールドで人気記事を表示!

プラグインなしで人気記事を表示するにはカスタムフィールドが一番いい。

カスタムフィールドで人気記事を表示する方法は公開されています。

人気記事を表示するまでは簡単ではありません。

でも、表示してしまえば何もしなくてもいいんです。

ちょっと言いすぎかな?

 

はじめたばかりのPrincipleで人気記事を表示しました。

デフォルトのPrincipleなら問題なく表示できるはすです。

ぜひお試しください。

 

header.phpにタグを貼りました

タグを貼ろうとしたら、single.phpがないんです。

header.phpにタグを貼りました。

自分のアクセスとボットのアクセスを除外しているタグです。

※ single.phpの代わりにsingular.phpがありました。
single.phpってカスタマイズしにくいです。


<?php if( !is_user_logged_in() && !is_bot() ) { set_post_views( get_the_ID() ); } ?>

 

参考;

【WordPress】プラグインなしで人気記事(ランキング)を載せる
WordPressのランキングをプラグインなしでつくる
【WordPress】プラグインなしで人気記事(ランキング)を載せる

※ 閲覧回数が表示できなかったので代わりにランキング順位をアイキャッチ画像に表示しています。



タイトルとURLをコピーしました