【WordPress】プラグインなしでview管理【人気記事昇降順付きやbot等除外】
【 昇降順付きやbot等除外 】サイトWP構築参考に
プラグインなしで管理画面でPVや人気記事をチェックする方法
自分のサイトを運営しているなら アクセスやPVをみたい 確認したいとするのは重要です
プラグインや 他のアプリなど使うのもいいのですが WordPress管理画面で簡易的にわかれば便利です
ここでのコードの機能内容としましては
viewカラム項目で 昇順降順の切り替えができること
アクセスやPVのviewを 指定ボットとログイン時の自アクセスを 除くことができること
これらについて 何かのヒントや手助けになれば幸いと思います
適宜更新
プラグインなしでviewチェック
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() ); } ?>
よいWebsite応援しています
読者のあなたに これからの人生で何かよりよい機会や影響を 与えること贈ることができれば
とても嬉しく光栄で幸福なことです ご愛読感謝します またお逢いしましょう
UIO OriginRegression Welcome twitter【www.投資家.com official】