Category
Archives
Cocotiie
Trial And Error!やってみよう!の精神でWeb制作をしています。初心者の方にも伝わるよう、心がけています。少しでも誰かの助けになれれば嬉しいです。宜しくお願い致します。

2006年:Web制作に関する覚書きブログをはじめる。

2018年:Cocotiie(ココッティー)として運営開始。
このサイトは快適なテーマ「SWELL」を使用していますSWELLについて

[WordPress] 管理画面に投稿のアクセス数(PV)を表示する方法

wordpressのPVカウント

どの記事がどれくらい閲覧されているのか気になりますよね?このブログで使用しているWordPressのテーマSwellはデフォルトで、管理画面にPV(アクセス数)が表示される機能がついています。残念ながら、どのテーマにも付いているものではありません。

他のサイトにもあったら便利なので付けました。プラグイン無しで実装する方法をシェアします。

アクセス数
完成図
INDEX

機能の仕様について

  • 各投稿欄にPV数(アクセス数)を表示する
  • 三画で並び順を変えられる様にする
  • 自分がログインしている状態で投稿を確認してもカウントされない様にする

実装方法

子テーマのfunction.phpに追記します。バックアップを取って下さいね。

function setPostview( $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 getPostview($postID) {
    $count_key = 'post_views_count';
    $count = get_post_meta($postID, $count_key, true);
    if ($count === '') {
        $count = 0;
        add_post_meta($postID, $count_key, $count, true);
        return $count;
    }
    return $count;
}

function addColumn( $defaults ) {
	$defaults['view'] = 'PV';
	return $defaults;
   }
add_filter('manage_posts_columns', 'addColumn');
     
function addColumnId($column_name, $postID) {
	if ($column_name == 'view') {
		echo getPostview($postID);
	}
   }
add_action('manage_posts_custom_column', 'addColumnId', 10, 2);


function addColumnSort($columns) {
    $columns['view'] = 'unique_sort_key';
    return $columns;
}
add_filter( 'manage_edit-post_sortable_columns', 'addColumnSort');
    
function addSortKey( $query ) {
	if ( $query->is_main_query() && ( $orderby = $query->get( 'orderby' ) ) ) {
	 switch( $orderby ) {
	  case 'unique_sort_key':
	   $query->set( 'meta_key','post_views_count');
	   $query->set( 'orderby', 'meta_value_num' );
	   break;
	 }
	}
   }
add_action( 'pre_get_posts', 'addSortKey', 1 );

次に、single.phpにコードを付け足します。子テーマの場合は、親テーマからファイルをコピーして子テーマに置きます。それから使用して下さい。この作業をしないと、テーマを更新した際に上書きされて元に戻ってしまいます。

single.phpの何処に書いても基本的にはOKです。

<?php if( !is_user_logged_in() ) { setPostView(get_the_ID()); } ?>

フックがあるなら

フックがある場合は、テンプレートに書き込まずフックで処理した方が良いです。私の場合はArkheのフックを使用しました。function.phpに追記

// single.phpにカウントさせる
add_action(
    'arkhe_start_content',
    function () {
        if (!is_user_logged_in()) {
            setPostView(get_the_ID());
        }
    }
);

カスタマイズ性が抜群!Arkhe Blocks Pro/Arkhe Toolkit/Arkhe CSS Editorがセットになっている1年間アップデート出来ます。

注意事項

実装した時からカウントされます。初期段階で設置する事をお勧めします。

実装済みのテーマならSwellがオススメ

初心者は何もする必要が無いくらい機能が揃っているテーマです。

おすすめのテーマ
このブログもSWELLです

\ ぜひ使って欲しい /

高速最適化済み、高機能、驚きの使い心地
深い知識不要で素敵なサイトが作れます。

支払は一度だけ。アップデートはずっと

よかったらシェアお願いします
  • URLをコピーしました!
  • URLをコピーしました!

コメント ※ハンドルネームでお願いします

コメントする

INDEX