WordPressにSimple GA RankingとGoogle Analytics Post Pageviewsで記事ランキングを表示する
2018/12/08
この記事はWordPress Advent Calendar 2018に参加した記事です。
目次
参考にさせていただいた記事
【Simple GA Ranking】にサムネイルと順位とPVを表示してみたよ
サムネイルも表示したかったのでこちらを参考にさせていただきました。
というかほぼそのままやってみました。
ありがとうございます!
「データベース接続確立エラー」が多発
WordPressの「データベース接続確立エラー」への対応(様子見中 EC2 + RDS t2.micro)
ある時期を境に「データベース接続確立エラー」が多発するようになりました。
時間の経過的には単純にアクセス数が増えたことが原因ですが、改善をしなければです。
環境はAWSで、 EC2 + RDS + CloudFront + WAF etc。
EC2インスタンスはt2.microのAmazon LinuxでログをCloudWatch Logsに書き出してます。
ログには”Can’t connect to local MySQL server”が1/16から多発していました。
根本的な原因としては、WordPress Popular PostsがページビューのたびにMySQLへ書き込みに行くのでそこが原因ではないかと。
心優しいみなさんのアドバイスをいただいて、Simple GA RankingとGoogle Analytics Post Pageviewsに変更することにしました。
Google APIの設定
Simple GA RankingはGoogle Analyticsからページビュー数を取得するので、Google APIの設定が必要です。
(Google Analyticsを使用されていない方は、Google Analyticsの設定方法を検索してGoogle Analyticsの有効化をまず行ってください。)
現在、Google APIの設定はGoogle Cloud Consoleに統合されているのでこちらで設定していきます。
アカウント名をクリックして、プロジェクト選択画面で[新しいプロジェクト]を選択してプロジェクトを作成します。
左ペインで[APIとサービス]を選択して、[APIとサービスの有効化]をクリックしました。
“analytics”などで検索して[Analytics API]を選択しました。
ウェブアプリケーションを選択してアプリケーション名を任意で入力して作成します。
このあとクライアントIDとクライアントシークレットが表示されるのでテキストエディタにコピーしました。
Simple GA Rankingの設定
WordPressのプラグイン新規追加で”Simple GA Ranking”を検索して追加しました。
う〜ん。PHP5.6以上が必要なのですね。
ここで見送りにしていたPHPバージョンアップに着手することにします。
ついでにAWSアカウントもブログ専用のアカウントを作って移行します。
Amazon Linux 上のWordPress PHPを5.3から7.2にバージョンアップ
さて、バージョンアップも終わったので改めて作業に戻ります。
[設定] – [Simple GA Ranking]で設定します。
pannel settingsのリンクをクリックして、トークンの設定をします。
ここで、コールバックURLをGoogleの認証情報に設定していなかったなあと気づきました。
コールバックURLを設定する前に承認するドメインとして今回設定するサイトのドメインを全部プロジェクトに追加します。
そして、次に認証情報の承認済みのリダイレクトURLにコールバックURLを設定します。
認証をしてトークン取得できました。
そして、このサイトが使用するAnalytics情報を選択します。
Google Analytics Post Pageviewsの設定
[設定] – [Post Pageviews]で設定します。
画面にかかれているとおり、認証情報に承認済みのリダイレクトURLを追加します。
サイトアドレス/wp-admin/options-general.php?page=google-analytics-post-pageviews
クライアントIDとクライアントシークレットを設定します。
そして認証をして、Post Pageviewsの設定です。
こちらで設定します。
PHPとCSSコード追加
[外観] – [テーマの編集]でコードを追加しました。
PHPもCSSは、元記事を参考にさせていただき、ちょっと変えました。
functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//Simple GA Ranking add_filter('sga_ranking_before_title','showRankingImage',10,2); function showRankingImage($ret, $id) { $post_url = get_permalink($id); // 記事のURL $title = get_the_title($id); //タイトル $pv = gapp_get_post_pageviews($id); $ret = ""; if (has_post_thumbnail($id)) { // アイキャッチ画像の有無 $post_thumb_src = wp_get_attachment_image_src(get_post_thumbnail_id($id),array(100,100)); $post_thumb = $post_thumb_src[0]; $ret = "<div class='ranking-img'><a href=\"{$post_url}\" title=\"{$title}\"><img src=\"{$post_thumb}\" alt=\"{$title}\" title=\"{$title}\"></a></div><div class='gapv'>".$pv." views"."<div/>"; } return $ret; } |
こちらのSimple GA Rankingの公式サイトにもあるように
sga_ranking_before_titleはランキングを表示させるHTMLのタイトル前を、sga_ranking_after_titleはタイトル後をカスタマイズできます。
今回はsga_ranking_before_titleのみを使用しました。
gapp_get_post_pageviewsでGoogle Analytics Post Pageviewsのページビューカウントを取得しています。
style.css
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
.ranking-img{ width: 100px; height: 100px; float: left; display: inline; margin: 0 5px 0 0; border: none; } .sga-ranking-list a { text-decoration: none; color: #111; display: block; font-weight: bold; } .sga-ranking li{ border-bottom-width: 1px; border-bottom-style: dotted; border-bottom-color: #999999; list-style-type: none; display: block; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; height: 120px; } div.gapv { color: #555; } ol.sga-ranking { counter-reset: pupular-ranking; } li.sga-ranking-list { position: relative; padding: 0px 0px 5px 0px; } li.sga-ranking-list:before { background: none repeat scroll 0 0 #00a23f; color: #fff; content: counter(pupular-ranking, decimal); counter-increment: pupular-ranking; font-size: 100%; left: 0; top: 0; line-height: 1; padding: 4px 7px; position: absolute; z-index: 1; border-radius: 5px; } |
ウィジェットの設定
[外観] – [ウィジェット]で、Simple GA Rankingを選択して、サイドバーにドラッグ&ドロップします。
タイトルを設定します。
見てみた
できました!
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
WordPressの記事のフッターに同じ内容を表示する
ブログの下部全ページに同じ内容を表示させたいときってありますよね。 イベントの案 …
-
OGPの設定をAll in One SEOからfunctions.phpで生成する方法に変えました
WordPressをアップデートしたら、All in One SEOの管理画面が …
-
WordPressのPHPを7から8にしたらプラグインのエラー “Unparenthesized `a ? b : c ? d : e` is not supported”
WordPressのPHPを7から8にしたら次のエラーが発生しました。 PHP …
-
WordPressにログインを強制して記事ごとのアクセス制限もする
WordPressを限定された組織内で使いたいとした場合に下記を実現したいと思い …
-
WordPressを4.7.2にアップグレード後、ログインしないと表示出来なくなって対応
このブログをWordPress 4.7.2にあげた後、ログインしていないと規則性 …
-
WordPressのPHPを7から8にしたらプラグインのエラー “Array and string offset access syntax with curly braces is no longer supported”
WordPressのPHPを7から8にしたら次のエラーが発生しました。 PHP …
-
Translate WordPress with GTranslateプラグインをインストールして当ブログに翻訳機能を追加する
翻訳プラグインを追加した理由 Google Analyticsを眺めていると、ほ …
-
WordPressのサイトヘルスの推奨に従って使っていないテーマを削除した
WordPressをバージョンアップしましたら、サイトヘルスってメニューができて …
-
WordPress投稿編集メニューでメディアライブラリに何も表示されなくなった
状態 WordPressで記事を編集して画像を挿入しようとすると、メディアライブ …
-
WordPressの目次を自動生成(Easy Table Contents)
ホール・パート・ホール、大切ですよね。 長いブログでは、この記事に何が書かれてい …