願いと紡ぐ 君の物語 * Love, Adventure, Survival, Education, Kizuna, Wish. 言葉と愛する 魔法と生きる 詞と生きる

【WordPress】プラグインなしでview管理【人気記事昇降順付きやbot等除外】

 【 昇降順付きやbot等除外 】サイトWP構築参考に

プラグインなしで管理画面でPVや人気記事をチェックする方法

自分のサイトを運営しているなら アクセスやPVをみたい 確認したいとするのは重要です

プラグインや 他のアプリなど使うのもいいのですが WordPress管理画面で簡易的にわかれば便利です

 

ここでのコードの機能内容としましては

Wordpressの投稿一覧管理と固定ページ管理で アクセスやPVの viewをチェックできること

viewカラム項目で 昇順降順の切り替えができること

アクセスやPVのviewを 指定ボットとログイン時の自アクセスを 除くことができること

 
これらについて 何かのヒントや手助けになれば幸いと思います

適宜更新


 

プラグインなしでviewチェック

WPプラグインを使用しない方法 コピペするなど参照してくださいませ

WPプラグインは便利ですが インストール有効化で表示遅くなるかもです

WPプラグインしたい場合は 別に検索したり 調べるのがいいと思います

 
※ 必ずバックアップをとって作業してください

 

おもにこんな人向け

このような人に向けて ご参照ください

・WPプラグイン使用しなくても管理画面で簡易的にviewのチェックをしたい
・WordPressを扱っている人 
・プログラミングやPHP初学者レベル以上
・WPでサイトを自作したい人
・バックアップをとって試せる人 以前のものに戻せる人
・投稿一覧画面と固定ページに viewカラム項目を追加したい
・viewのアクセスやPV数だけでなく 昇順降順もチェックしたい
・指定ボットとログイン時のカウントをしない

 

コード

コードは 3カ所に 記述します

もちろん これをコピー活用もいいですが 自分なりにカスタマイズも素晴らしいです

不要なものは 消すのも 追加したいなら 追加されて よりよいサイト作りを応援しています

これは 簡易なものです まだまだ改善の余地もあるでしょう

美しいコードを目指されてくださいませ

 

function.php 記述します

    
/*投稿一覧管理にview数カラム追加表示コード 20xx.xx.xx. 連携No.xxx. 要連携single,page はじめ*/

if(function_exists('wpp_get_views')){

    add_filter('manage_posts_columns', function($columns){
            $columns['view'] = "view";
            return $columns;
    });

    add_action('manage_posts_custom_column',function($column_name, $post_id){
        if($column_name == 'view'){
        echo wpp_get_views($post_id, 'week', true).'|'.wpp_get_views($post_id, 'all', true);
        }
    },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);
  }
}

// クローラーのアクセスやview判別
function is_bot() {
  $ua = $_SERVER['HTTP_USER_AGENT'];

  $bot = array(
        "googlebot",
        "msnbot",
        "yahoo"
  );
  foreach( $bot as $bot ) {
    if (stripos( $ua, $bot ) !== false){
      return true;
    }
  }
  return false;
}

// view数を取得する
function getPostViews($postID){
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if($count==''){
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, '0');
        return "0";
    }
    return $count.'';
}

// 固定と投稿の管理画面にview数カラム項目を追加する
add_filter( 'manage_pages_columns', 'count_add_column' );
add_filter( 'manage_posts_columns', 'count_add_column' );
function count_add_column( $columns ) {
    $columns['views'] = 'view';
    return $columns;
}

// 固定と投稿の管理画面にview数を表示する
add_action( 'manage_pages_custom_column' , 'count_add_column_data', 10, 2 );
add_action( 'manage_posts_custom_column' , 'count_add_column_data', 10, 2 );
function count_add_column_data( $column, $post_id ) {
    switch ( $column ) {
        case 'views' :
                        echo getPostViews($post_id);
            break;
    }
}

// view数カラム項目を昇順降順の切替える要素にする
add_filter( 'manage_edit-page_sortable_columns', 'column_views_sortable' );
add_filter( 'manage_edit-post_sortable_columns', 'column_views_sortable' );
function column_views_sortable( $newcolumn ) {
    $columns['views'] = 'views';
    return $columns;
}

// view数カラム項目クリックで昇順降順の切替リクエストを送る
add_filter( 'request', 'sort_views_column' );
function sort_views_column( $vars )
{
    if ( isset( $vars['orderby'] ) && 'views' == $vars['orderby'] ) {
        $vars = array_merge( $vars, array(
            'meta_key' => 'post_views_count', //Custom field key
            'orderby' => 'meta_value_num') //Custom field value (number)
        );
    }
    return $vars;
}

/*投稿一覧管理にview数カラム追加表示コード 20xx.xx.xx. 連携No.xxx. 要連携single,page おわり*/
    

 

 

single.php および page.php それぞれに記述します

    
/*投稿一覧管理画面にview数カラム追加表示コード 20xx.xx.xx. 連携No.xxx. 要連携function*/
<?php if( !is_user_logged_in() && !is_bot() ) { set_post_views( get_the_ID() ); } ?>
    

 

 


 

【WordPress】プラグインなしでview管理【人気記事昇降順付きやbot等除外】
よいWebsite応援しています

 

 

読者のあなたに これからの人生で何かよりよい機会や影響を 与えること贈ることができれば
とても嬉しく光栄で幸福なことです ご愛読感謝します またお逢いしましょう

   UIO OriginRegression   Welcome twitter【www.投資家.com official】