Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPressで人気投稿を表示する方法(2つの方法)

編集メモ: WPBeginner のパートナーリンクから手数料を得ています。手数料は編集者の意見や評価に影響を与えません。編集プロセスについて詳しく知る。

カテゴリー:WordPressで表示日:に基づいて人気の投稿を表示したいですか?

WordPressブログの人気投稿を表示することで、読者があなたのベストで最も価値のあるコンテンツを見つけやすくなります。さらに、サイトに長く滞在してもらうこともできます。

今回は、WordPressで人気投稿を表示する方法をご紹介します。

How to Display Popular Posts by Views in WordPress

なぜWordPressで表示回数別に人気投稿を表示するのか?

ユーザーがWordPressブログの人気投稿を見れば、仲間の読者がどんなコンテンツを一番気に入っているかを知ることができます。そうすれば、それらの投稿をチェックし、会話に参加することができる。

さらに、WordPressで最も人気のあるコンテンツを表示することで、あなたの社会的証明を高めることができます。新規ユーザーに対して、”他のユーザーもこの投稿がとても役に立っているから、あなたもそうなるかもしれませんよ!”と伝えているようなものです。

WPBeginner's trending and popular posts

最後に、トレンドのブログ投稿を表示することで、人々があなたのサイトに長く滞在し、ページビューを増やし、直帰率を減らすことができます。

ユーザー・エンゲージメントが高まれば高まるほど、Googleはあなたのコンテンツを良質で重要なものだと考えるようになります。その結果、WordPressのSEOが向上し、サイトが上位に表示されるようになります。

残念ながら、WordPressにはページビュー別に人気投稿を表示するビルトイン機能やブロックがありません。このガイドでは、プラグインとコードを使ってそれを実現する方法を紹介します。

以下のリンクをクリックすると、ご希望の方法にジャンプします:

動画チュートリアル

Subscribe to WPBeginner

文章での説明がお好きな方は、そのまま読み進めてください。

方法1:MonsterInsightsでWordPressの人気投稿を表示する

WordPressで人気投稿を表示する最も簡単な方法は、プラグインを使うことです。WordPressの人気投稿プラグインは実はたくさんありますが、私たちの意見では、MonsterInsightsがベストチョイスです。

The MonsterInsights Google Analytics plugin

世界中の300万以上のサイトで使用されているMonsterInsightsは、WordPressのための最高のGoogleアナリティクスプラグインです。主な機能はアナリティクスですが、人気の投稿を表示するユーザーフレンドリーな機能もあります。

まず最初に、MonsterInsightsプラグインをインストールし、Googleアナリティクスアカウントに接続する必要があります。詳しくは、初心者のためのWordPressにGoogleアナリティクスをインストールする方法のステップバイステップガイドをご覧ください。

注: MonsterInsightsには無料版もありますが、今回は人気投稿機能を含むPro版を使用します。

人気投稿ウィジェットの テーマを選ぶ

プラグインを有効化し、設定したら、WordPressダッシュボードからInsights ” Popular Postsに行く。そして、「Popular Posts Widget」メニュー項目をクリックします。

The Popular Posts Widget in MonsterInsights

下にスクロールすると、人気投稿ウィジェットを表示するテーマを選択する必要があります。様々なオプション設定があります。

投稿にアイキャッチ画像を含むものもあれば、もっとミニマルなものもある。

Choosing a popular posts widget theme in MonsterInsights

テーマを選択する前に、そのテーマがどのようなものか確認したい場合は、ページ下の「テーマ・プレビュー」セクションに移動してください。

ワイドまたはナローのフォーマットでテーマをプレビューすることもできます。ワイドフォーマットでは、投稿がページや投稿コンテンツの下に表示され、ナローフォーマットでは、投稿がサイドバーのように右側に表示されます。

Previewing the popular posts widget theme in MonsterInsights

次に、「デザインのカスタマイザー」セクションまでスクロールダウンしてみましょう。ここでは、テーマの色、フォントサイズ、レイアウト、表示する投稿数を変更することができます。

カスタマイズのオプションは、使用するテーマによって異なります。本当に〜してもよいですか?

Customizing the popular posts widget theme in MonsterInsights

人気投稿ウィジェットの動作を設定する

テーマのデザインを設定したら、ビヘイビアセクションに移動しなければならない。ここで、人気投稿ウィジェットがWordPressサイトにどのように表示されるかをコントロールする。

ウィジェットスタイリング設定では、上記で作成したデザインを使用するか、ウィジェットのスタイルをすべて変更しないかを選択できます。2番目のオプションでは、ウィジェットはWordPressサイトのテーマのCSSに従います。

次に、ウィジェットが人気投稿を選択する方法を選択できます。このチュートリアルでは’Curated’を選択しますが、コメント数に基づいて最も人気のある投稿を表示することもできます。

Some of the popular posts widget's behavior settings in MonsterInsights

次の作業は、「Googleアナリティクスから上位5投稿を追加」オプションを有効化することです。しかし、その前にMonsterInsights Dimensions Add-Onと新規カスタムディメンションとして投稿タイプを追加する必要があります。

これにより、MonsterInsightsはGoogleアナリティクスのデータに基づいて最も人気のある投稿を選択することができます。

そのためには、MonsterInsights Dimensionsアドオンをダウンロードし、WordPressにプラグインとしてインストールする必要があります。ステップバイステップの手順については、WordPressプラグインのインストール方法をご覧ください。

次に、Insights “ Settingsに 行き、’Conversions’タブに切り替える。その後、「Add New Custom Dimension」をクリックする。

Adding a new custom dimension in MonsterInsights

そうしたら、ドロップダウンメニューから「投稿タイプ」を選択します。

これにより、MonsterInsightsがブログ投稿やその他のカスタム投稿タイプのパフォーマンスを追跡することが有効化されます。

Selecting post type as a custom dimension in MonsterInsights

インサイト ” 人気投稿“に戻り、”人気投稿ウィジェット “にアクセスする。

Google アナリティクスから上位5投稿を追加する」トグルボタンを有効化するだけです。その後、’Test Automated Posts’をクリックし、設定が成功したかどうかを確認します。

Adding top 5 posts based on GA data in MonsterInsights

Yesの場合、成功メッセージがポップアップ表示されます。

人気投稿データが正しく取得されています。ご注意:カスタムディメンションの設定時期によっては、Google アナリティクスから関連する Popular Posts のデータが読み込まれるまで最大 7 日かかる場合があります。

Popular posts data can be fetched correctly popup message in MonsterInsights

次のステップに進み、ウィジェットの上に表示されるタイトルを追加します。Check Out Our Most Popular Posts’などのようなものでもかまいません。

その下に、ウィジェットをすべての投稿タイプに表示するか、特定の投稿から除外するか、特定の投稿カテゴリーだけに表示するかを選択できます。

これらの設定は、ブログ投稿以外のカスタム投稿タイプを作成していて、人気投稿ウィジェットが無関係に見えると感じる場合に便利です。

More behavior settings for the popular posts widget in MonsterInsights

最後のステップは、人気投稿ウィジェットを埋め込むことです。自動的に設置する、Gutenbergブロックを使う、サイドバーウィジェットとして追加する、ショートコードを使うなど、いくつかのオプションがあります。

オプションを一つずつ見ていこう。

The embed options of popular posts widget in WordPress

人気投稿ウィジェットを自動的に埋め込む

過去のBehavior設定に一致する投稿日: すべてにウィジェットを表示したい場合は、Automatic Placementをお勧めします。

そのためには、「自動配置」ボタンを有効化するだけでよい。

Activating automatic placement for the popular posts widget in MonsterInsights

このオプションの欠点は、投稿日やページに最適なウィジェットのデザインを調整できないことです。このタイプの機能が必要なら、次の方法を試してください。

人気投稿ブロックをページや投稿に埋め込む

ウィジェットがページや投稿日にどのように見えるかをもっとコントロールしたい場合、この方法が適しています。

まず、ウィジェットを設置したい投稿またはページのブロックエディターに行きます。その後、エディター内の任意の場所で「+」ブロック追加ボタンをクリックし、「Popular Posts」ブロックを探します。

Adding MonsterInsights' popular posts block in the WordPress block editor

ブロック設定パネルには、ウィジェットのテーマ、フォントサイズ、色、タイトル、レイアウト、投稿数を変更するオプションがあります。

これらの設定は、MonsterInsightsプラグインで見たものと似ている。

MonsterInsights' popular posts block settings in the WordPress block editor

唯一の違いは、ウィジェットで選択される投稿を変更できないことです。

とはいえ、「動作設定」では、特定のカテゴリーからの投稿だけを表示することも可能です。こうすることで、人気投稿の選択肢をよりニーズに合わせたものにすることができます。

Choosing to only display posts from certain categories in the MonsterInsights popular posts widget

ブロックの設定に満足したら、投稿エディターとページエディターで「更新」ボタンをクリックするだけです。

テストサイトでの「人気投稿」ブロックはこんな感じです:

Example of what the MonsterInsights popular posts block look like on the WordPress site

人気投稿ウィジェットをサイドバーに埋め込む

ウィジェット対応のサイドバーエリアがある非ブロックWordPressテーマを使用している場合、そこにPopular Postsウィジェットを追加することができる。これは、WordPressサイドバーにおすすめ投稿を追加する方法のカテゴリー:で行ったことである。

すべて外観 ” ウィジェットにアクセスするだけです。そして、サイドバーエリアの「+」ウィジェット追加ボタンをクリックし、「人気投稿 – MonsterInsights」ウィジェットを探してください。

Adding the MonsterInsights popular posts widget to the sidebar area

前の方法と同様に、ウィジェットにはテーマの外観をカスタマイズするための同様の設定が含まれています。

何が違うかというと、インターフェースが若干トリッキーになっていることだ。設定を変更しても、ウィジェットが実際にどのように見えるかを見ることはできません。プレビューするには、別のウィジェットまたは別のエリアをクリックする必要があります。

ウィジェットの外観に問題がなければ、右上の「更新」をクリックしてください。

Updating the sidebar area after adding the MonsterInsights popuplar posts widget

サイドバーが正しく見えるかどうか、あなたのサイトで確認してください。

私たちのはこんな感じだ:

Example of the MonsterInsights popular posts widget in a sidebar

Popular Postsウィジェットを特定のページにのみ表示させたい場合は、WordPressの特定のページでウィジェットを表示または非表示にする方法のガイドをご覧ください。

ショートコードで人気投稿ウィジェットを埋め込む

最後のオプションは、ショートコードを使用することです。この方法は、上記のオプションがあなたの特定のユースケースで機能しない場合に推奨されます。

Popular Posts Widgetタブで、「Embed Options」セクションまですべてスクロールダウンします。次に、「ショートコードを使用して表示」を選択し、「ショートコードをコピー」ボタンをクリックします。

Copying the popular posts widget shortcode in MonsterInsights

その後、好きな場所にショートコードを配置するだけです。詳しくは、WordPressでショートコードを追加する方法をご覧ください。

方法2:コードでWordPressの人気投稿を表示する

MonsterInsightsの方法は、WordPressで最も人気のあるベストコンテンツを表示する最も簡単な方法です。しかし、もしあなたがコーディングに慣れているのであれば、WordPressで最も人気のある投稿を表示するためにコードを使用することもできます。

この方法では、WPCodeのようなコード・スニペット・プラグインを使用することをお勧めします。

WPCode - Best WordPress Code Snippets Plugin

WPCodeを使えば、WordPressファイルに直接触れることなくカスタムコードを安全に挿入することができます。さらに、この方法では複数のコードスニペットを使用する必要があるため、プラグインを使用すると、それらのすべての管理とトラッキングがはるかに容易になります。

まず、WordPressにWPCodeをインストールする必要がある。WPCodeには無料版もありますが、ここではPro版を使用します。正しい位置にコードを挿入するために必要な機能が備わっているからです。

ステップバイステップのインストールガイドについては、WordPressプラグインのインストール方法の投稿をお読みください。

WordPress投稿表示カウンター機能の追加

プラグインを有効化したら、ダッシュボードからCode Snippets ” + Add Snippetに 行く必要があります。Add Your Custom Code (New Snippet)」にマウスオーバーし、「Use snippet」をクリックします。

Use snippet

これで、WPCodeコード・スニペット・エディターに入りました。コードを挿入する前に、スニペットのタイトルを追加してください。

この最初のコードには、「WordPress Post Views Counter Function」のような名前を付けることができます。なぜなら、この最初のコードの目的は、WordPressの投稿表示数をカウントする関数を作成することだからです。

次に、コードタイプを「PHPスニペット」に変更する。この投稿から追加しなければならないコード・スニペットはすべてPHPであることに注意してください。

Creating the WordPress Post Views Counter Function in WPCode

その後、以下のコードをコピー&ペーストしてください:

function wpb_set_post_views($postID) {
    $count_key = 'wpb_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);
    }
}
//Get rid of prefetching to keep the count accurate
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

あとは「インサーター」セクションまでスクロールダウンし、挿入方法に「Auto Insert」、場所に「Run Everywhere」を選択するだけです。これはテーマのfunctions.phpファイルにコードを挿入するのと同じです。

その後、ページの右上に移動し、コードを有効化する。

そして、「スニペットを保存」をクリックする。

Choosing the insertion method and location in WPCode

この段階で、別の新しいカスタムコードスニペットを追加する必要があります。これは「Track Post Views Function Call」と名付けることができます。

このコードは上記の関数を呼び出し、個別投稿ページで有効化します。

それができたら、次のスニペットをコピー&ペーストする:

wpb_set_post_views(get_the_ID());

このコード・スニペットで異なるのは、個別投稿ページで実行することを想定しているため、「Insert After Post」の場所を選択することです。

Choosing Insert After Post as the code insertion location in WPCode

完了したら、コードを有効化して保存する。

WordPress投稿表示トラッキングフックの挿入

ここで、現在のページが個別投稿かどうかをチェックする新しいコード・スニペットを追加する必要があります。もしそうなら、投稿の表示回数を追跡して更新するためにWordPressの投稿表示カウンター関数を呼び出します。

こうすることで、ユーザーが投稿にアクセスするたびに表示回数が更新される。

このスニペットを「WordPress Post Views Tracking Hook」と名付けよう。そして、以下のコード行を挿入する:

function wpb_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
        global $post;
        $post_id = $post->ID;    
    }
    wpb_set_post_views($post_id);
}
add_action( 'wp_head', 'wpb_track_post_views');

インサート方法は「自動インサート」、場所は「フロントエンドのみ」を選択できる。

前のステップと同じように、コードを有効化してスニペットを保存するだけです。

Choosing Frontend Only as the code insertion location in WPCode

注: キャッシュプラグインを使用している場合、このテクニックは初期設定では動作しない可能性があります。W3 Total Cacheのようなキャッシュ・プラグインが提供するフラグメント・キャッシング機能を使えばうまくいくかもしれません。

投稿の表示回数を取得し、最も人気のある投稿を表示する関数を追加。

このガイドの最終段階に入った。WordPressの投稿の表示回数を取得してフォーマットするコード・スニペットを追加する必要があります。これは後で最も閲覧された投稿のリストを表示するときに便利です。

このコードを「投稿表示回数取得関数」と名付け、場所を「どこでも実行」に設定します。

以下はそのコード・スニペットである:

function wpb_get_post_views($postID){
    $count_key = 'wpb_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 View";
    }
    return $count.' Views';
}

この場合も、WPCodeでコードを有効化してから保存してください。

それができたら、また新しいコード・スニペットを作成し、名前を「Display Most Popular Posts with View Counts」とします。これは、ブログ投稿の一番下に人気投稿を表示するコードです。

コード・プレビュー・ボックスに、以下のスニペットを挿入する:

// Customize the query parameters as needed
$popularpost = new WP_Query( array(
    'posts_per_page' => 3,         // Feel free to adjust the number of posts to display
    'meta_key' => 'wpb_post_views_count',
    'orderby' => 'meta_value_num',
    'order' => 'DESC'
));
?>

<div class="popular-posts">
    <h2>See Our Most Popular Posts</h2> <!-- Feel free to customize the title -->
    <ul>

    <?php while ( $popularpost->have_posts() ) : $popularpost->the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            - <?php echo wpb_get_post_views(get_the_ID()); ?>
        </li>
    <?php endwhile; ?>

    </ul>
</div>

<?php wp_reset_postdata(); 

コードにあるように、表示する投稿数を自由に調整し、このセクションのタイトルをカスタマイズしてください。

WPCode Insertionセクションで、Locationに’Insert After Post’を選択してください。そして、コードを有効化してスニペットを保存します。

あとはすべて、あなたのブログの投稿を訪問し、コードが機能するかどうかを確認するだけです。以下は、私たちのテストWordPressブログで、表示セクション別に最も人気のある投稿がどのように見えるかです:

What the most popular posts by views section looks like made with WPCode

専門家のアドバイスサイトを永久に変更することなく、あなたのコードが動作するかどうかを確認するには、WPCodeのテストモードを試すことができます。

この機能により、通常のようにコードを追加することができ、あなただけがフロントエンドでどのように見えるかを見ることができます。もう一方では、ユーザーは通常通りあなたのサイトを利用することができます。

このWordPressチュートリアルで、人気投稿を表示する方法を学んでいただけたでしょうか。WordPressの関連投稿プラグインやコンバージョンの高いランディングページの作り方についての記事もご覧ください。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

166件のコメント返信を残す

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Mrteesurez says

    I think it would be easier to use a plugin maybe Monsterinsights or another as it straight forward than using custom code, but the issue is, I don’t think using Monsterinsights will shows view counts ??

    • WPBeginner Support says

      MonsterInsights would mot show the view count by default if that is what you want to include with your popular posts.

      管理者

  3. mohadese esmaeeli says

    The display of popular posts is beneficial as it helps increase website traffic statistics. However, on the other hand, competitors can easily identify which posts and topics have been popular on your site. One of the sections I always explore for competitor analysis and finding trending topics is the “most popular articles” section on various websites.

    • WPBeginner Support says

      While that can be something to keep in mind, we normally find it best to add what is most important to your visitors instead of being concerned that your competitors will follow your content.

      管理者

    • Mrteesurez says

      Yes, competitors can use it to analytics ones website but you can just display it like WPbeginner, without adding the views count/counter.
      But mind you, visitors can use Semrush, Google, Similarweb and some other ways to analyze your site. You own is just to know how you are playing your games.
      Thanks for the insight.

  4. Moinuddin Waheed says

    Popular posts and related posts makes the user engagement intact and reduced bounce rate.
    it helps in more user interaction with the posts and articles.
    I have seen many bloggers showing views count and read time of the posts, like 5 minutes read or 3 minutes read.
    can we have popular posts and related posts where ever we want with this method? and
    Is this method can be used for achieving both these objectives like having read time based on word counts?

    • WPBeginner Support says

      You should be able to place it wherever widgets are allowed. For the time to read, it would depend on the plugin you use for that and if it has an integration or not.

      管理者

  5. Jiří Vaněk says

    I would like to ask if the snippet also works on the new WordPress 6.4.2. I followed the instructions, cleared the cache, but the most read articles do not appear under the article

      • Jiří Vaněk says

        Thank you for the reply. It’s already working. I had a mistake somewhere and unfortunately I don’t know where. In the end, I repeated the whole procedure twice more and it worked on the third try. Unfortunately, I don’t know what I did wrong, but the snippets really work. Thank you.

        • WPBeginner Support says

          Glad they started working for you, it’s always difficult to tell what went wrong when trying the same code again works when the previous time it didn’t.

    • WPBeginner Support says

      We do not have a recommended method for user specific popular posts at the moment.

      管理者

  6. Chris says

    If we have caching enabled, can we avoid the caching problem by resorting to JavaScript (AJAX) to send the command to record the view? Would that work?

    • WPBeginner Support says

      While there is a complex way to have that workaround, we do not have a method we would recommend at this time.

      管理者

  7. Amir says

    Hello, thank you very much.
    It is very simple and practical.

    But with each reload, one visit is added.
    How can I fix this problem?

    Thankful

    • WPBeginner Support says

      Any time a user would reload a page or visit the page again would be another visit. For specifically excluding refreshes you would need to use a plugin with more advanced features.

      管理者

    • WPBeginner Support says

      You may want to try clearing all caching checking with your theme’s support to ensure they don’t have anything that would conflict with this

      管理者

  8. za says

    Thank you for the tutorial. I applied it and it works. No need another plugin to show popular posts and the customized counter in single.

    Thanks!

  9. Chris says

    Is it beyond the scope of this article to explain had you assign the functions to those buttons as in your screenshot:

    Recent Articles – Popular Posts – editor’s picks

    That is basically what I want to do…have buttons at the top of my posts page for recent, popular/trending, editors picks. I haven’t found any plugins that can do that. The all focus on side bar widgets.

    It looks like your article is starting to talk about this but where to go from there is beyond my current knowledge level.

    Thanks,
    Chris

  10. Amit Biswas says

    Getting double view count on refresh (single.php). Don’t know if the remove action is working or not for “adjacent_posts_rel_link_wp_head”. Useless so far. I tried everything that is possible to remove double count. Using this code in a custom made plugin.

  11. Hans says

    Thsi thing works greats.

    Now I want the columnn in admin to be sortable. any idea how to do this?

    many thanks!

  12. Trevor says

    Hey, thanks for the code. Only issue I’m having is the view count is incrementing by 2 instead of 1 on refresh. Any thoughts?

    • Fuchel says

      This was happening for me because I had:

      `set_post_views(get_the_ID());` in single.php
      AND
      `add_action( ‘wp_head’, ‘track_post_views’);` in my functions.php which was also adding `set_post_views(get_the_ID());` within it.

      By removing the line on single.php I fixed the double count.

  13. Bülent Sakarya says

    Hello..

    Using w3total cache but count not working correctly.

    don’t use child theme. how can I fix it?

    thanks..

  14. Ryley Ameden says

    Fixed this issue:

    Cannot use WP_Query, used get_posts and it is now working. Then use a foreach look to loop through the posts and display them. See below:

    $blog_cat_array = get_the_category();
    $blog_cat = $blog_cat_array[0]->term_id;

    $popularpost = array(
    ‘posts_per_page’ => 2,
    ‘meta_key’ => ‘wpb_post_views_count’,
    ‘orderby’ => ‘meta_value_num’,
    ‘order’ => ‘DESC’,
    ‘category’ => $blog_cat,
    ‘post_type’ => ‘post’,
    );
    $pop_posts = get_posts($popularpost);

    foreach($pop_posts as $pop_post){
    the_title();
    }

  15. Erwin Barendregt says

    I really like this option and have built it into my site.
    I have one question regarding the count. I found that the counts were rather high so I changed the code around a bit. With every count increase I wrote the IP address to a log file. I found hat two-third of the counts were legit and the other ones came from googlebot, apple, etc. and just now apews Is there any way to get the counts right and do you know if the ‘regular’ plugins have found a way around this?
    Thx!
    BTW: Keep up the good work, I thoroughly enjoy this site!

    • bah says

      you can take maxmind ISP IP database and only count humans. This is the best option. Second just dont count common bots user-agent-names

      • Erwin Barendregt says

        Thanks so much. I will definitely look into that.
        In the mean time I implemneted the solution which was implemented in the WordPress Popular Posts plugin. That works for now, but the solution you recommended seems more future-proof. Thanks again!

  16. John says

    Hi! Awesome! This code helped me a lot!

    Do you know how to display the posts with 0 views? I have to enter to the post page by using the url the first time, otherwise it doesn’t show.

  17. Gianmarco says

    Awesome thanks this is really useful, but a question. Doesn’t it slow down the loading of the page significantly?

  18. ayaz says

    Hi,

    This is very useful post, i really appreciate. Can i filter the post in category, I wanted to show the post of specific category.

    Thanks.

  19. Bojan says

    Ok this is great. For some reason, post count doesnt show numbers, not sure is it because i work on a local., but what i wanted to ask even more, is how to add so it count only in the last 7 days?

  20. Dhiraj Kataria says

    I need advice on how r u to Load Word files to a WordPress website please. Is there an easy way?

  21. DarkSafka says

    Sadly this does not work with W3 Total Cache with Page Caching enabled. Coul not get any “fragmented caching” to work either.

  22. REIBI says

    Hey,
    This works great. But I need to show popular post of a day, this code shows popular posts of all time. Is there anyway to show popular posts of a day only.

    Any help will be greatly appreciated.

    Thanks :)

    • Dimitrios Arkolakis says

      Try to add something like this in the WP Query

      ‘date_query’ => array(
      array(
      ‘year’ => $today[‘year’],
      ‘month’ => $today[‘mon’],
      ‘day’ => $today[‘mday’],
      ),

      • Nick Heurter says

        This doesn’t seems to work. Is there anyone who figures out how to display the most popular posts of the lasts 7 days?

        Thanks!

  23. Mawardiy says

    Hi, I use Goodnews 5.7.2 theme, but where i put “wpb_get_post_views(get_the_ID());” in my theme, thank for u’r guidance

  24. Alex says

    Hey, thanks for the information.
    There’s a little problem. I put:

    function wpb_set_post_views($postID) {
    $count_key = ‘wpb_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);
    }
    }
    //To keep the count accurate, lets get rid of prefetching
    remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

    function wpb_track_post_views ($post_id) {
    if ( !is_single() ) return;
    if ( empty ( $post_id) ) {
    global $post;
    $post_id = $post->ID;
    }
    wpb_set_post_views($post_id);
    }
    add_action( ‘wp_head’, ‘wpb_track_post_views’);

    function wpb_get_post_views($postID){
    $count_key = ‘wpb_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 View”;
    }
    return $count.’ Views’;
    }

    and my visits counts always as two. What’s happening? Thanks.

    • ScoDal says

      I modified this a little to use it as a shortcode. To use this with a shortcode, add this to your functions.php:

      function wpb_set_post_views($postID) {
      $count_key = ‘wpb_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);
      }
      }
      //To keep the count accurate, lets get rid of prefetching
      remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0);

      function wpb_track_post_views ($post_id) {
      if ( !is_single() ) return;
      if ( empty ( $post_id) ) {
      global $post;
      $post_id = $post->ID;
      }
      wpb_set_post_views($post_id);
      }
      add_action( ‘wp_head’, ‘wpb_track_post_views’);

      function wpb_get_post_views($postID){
      $count_key = ‘wpb_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 View”;
      }
      return $count.’ Views’;
      }

      function wpb_most_viewed_posts() {
      // start output buffering
      ob_start();
      ?>
      4, ‘meta_key’ => ‘wpb_post_views_count’, ‘orderby’ => ‘meta_value_num’, ‘order’ => ‘DESC’);

      //begin loop
      while ($query->have_posts()) : $query->the_post(); ?>

      <?php

      // Turn off output buffering
      $theResult = ob_get_clean();

      //Return output
      return $theResult;
      }
      // Create shortcode
      add_shortcode('wpb_most_viewed', 'wpb_most_viewed_posts');

      //Enable shortcode execution in text widgets
      add_filter('widget_text', 'do_shortcode');

      Then simply add [wpb_most_viewed] to your desired page/post and it should display your most popular posts.

  25. John says

    Hello, great tutorial but I have one question.
    After following all of the steps the template isn’t paginating. It’s only showing the default 10 posts. Should this happen or is there a way to get it to paginate?

  26. Varange says

    Folks, please help. Just cannot figure it out.

    How do I change the args to the wp-query to show the most popular posts for the last week? Or month?

  27. Denis says

    Hello,
    can I do this with comments? I dont use any comments on my site so I could use this comment count to check my most popular page without adding a comment?
    Cheers,
    Denis

  28. Kes says

    I’ve found a number of tuts covering this topic but none seem to spell out where the line goes.

    I’ve tried it inside PHP tags and it breaks the page. If i place it in the HTML it just renders as a comment when you view source and no php is generated.

    Any ideas? I’m w3 total cache and my page views aren’t getting updated

  29. Jorge says

    Hello! How can I show the most popular posts for the current week?? Is there any possible? Thanks in advance.

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。