カテゴリー:WordPressで表示日:に基づいて人気の投稿を表示したいですか?
WordPressブログの人気投稿を表示することで、読者があなたのベストで最も価値のあるコンテンツを見つけやすくなります。さらに、サイトに長く滞在してもらうこともできます。
今回は、WordPressで人気投稿を表示する方法をご紹介します。
なぜWordPressで表示回数別に人気投稿を表示するのか?
ユーザーがWordPressブログの人気投稿を見れば、仲間の読者がどんなコンテンツを一番気に入っているかを知ることができます。そうすれば、それらの投稿をチェックし、会話に参加することができる。
さらに、WordPressで最も人気のあるコンテンツを表示することで、あなたの社会的証明を高めることができます。新規ユーザーに対して、”他のユーザーもこの投稿がとても役に立っているから、あなたもそうなるかもしれませんよ!”と伝えているようなものです。
最後に、トレンドのブログ投稿を表示することで、人々があなたのサイトに長く滞在し、ページビューを増やし、直帰率を減らすことができます。
ユーザー・エンゲージメントが高まれば高まるほど、Googleはあなたのコンテンツを良質で重要なものだと考えるようになります。その結果、WordPressのSEOが向上し、サイトが上位に表示されるようになります。
残念ながら、WordPressにはページビュー別に人気投稿を表示するビルトイン機能やブロックがありません。このガイドでは、プラグインとコードを使ってそれを実現する方法を紹介します。
以下のリンクをクリックすると、ご希望の方法にジャンプします:
動画チュートリアル
文章での説明がお好きな方は、そのまま読み進めてください。
方法1:MonsterInsightsでWordPressの人気投稿を表示する
WordPressで人気投稿を表示する最も簡単な方法は、プラグインを使うことです。WordPressの人気投稿プラグインは実はたくさんありますが、私たちの意見では、MonsterInsightsがベストチョイスです。
世界中の300万以上のサイトで使用されているMonsterInsightsは、WordPressのための最高のGoogleアナリティクスプラグインです。主な機能はアナリティクスですが、人気の投稿を表示するユーザーフレンドリーな機能もあります。
まず最初に、MonsterInsightsプラグインをインストールし、Googleアナリティクスアカウントに接続する必要があります。詳しくは、初心者のためのWordPressにGoogleアナリティクスをインストールする方法のステップバイステップガイドをご覧ください。
注: MonsterInsightsには無料版もありますが、今回は人気投稿機能を含むPro版を使用します。
人気投稿ウィジェットの テーマを選ぶ
プラグインを有効化し、設定したら、WordPressダッシュボードからInsights ” Popular Postsに行く。そして、「Popular Posts Widget」メニュー項目をクリックします。
下にスクロールすると、人気投稿ウィジェットを表示するテーマを選択する必要があります。様々なオプション設定があります。
投稿にアイキャッチ画像を含むものもあれば、もっとミニマルなものもある。
テーマを選択する前に、そのテーマがどのようなものか確認したい場合は、ページ下の「テーマ・プレビュー」セクションに移動してください。
ワイドまたはナローのフォーマットでテーマをプレビューすることもできます。ワイドフォーマットでは、投稿がページや投稿コンテンツの下に表示され、ナローフォーマットでは、投稿がサイドバーのように右側に表示されます。
次に、「デザインのカスタマイザー」セクションまでスクロールダウンしてみましょう。ここでは、テーマの色、フォントサイズ、レイアウト、表示する投稿数を変更することができます。
カスタマイズのオプションは、使用するテーマによって異なります。本当に〜してもよいですか?
人気投稿ウィジェットの動作を設定する
テーマのデザインを設定したら、ビヘイビアセクションに移動しなければならない。ここで、人気投稿ウィジェットがWordPressサイトにどのように表示されるかをコントロールする。
ウィジェットスタイリング設定では、上記で作成したデザインを使用するか、ウィジェットのスタイルをすべて変更しないかを選択できます。2番目のオプションでは、ウィジェットはWordPressサイトのテーマのCSSに従います。
次に、ウィジェットが人気投稿を選択する方法を選択できます。このチュートリアルでは’Curated’を選択しますが、コメント数に基づいて最も人気のある投稿を表示することもできます。
次の作業は、「Googleアナリティクスから上位5投稿を追加」オプションを有効化することです。しかし、その前にMonsterInsights Dimensions Add-Onと新規カスタムディメンションとして投稿タイプを追加する必要があります。
これにより、MonsterInsightsはGoogleアナリティクスのデータに基づいて最も人気のある投稿を選択することができます。
そのためには、MonsterInsights Dimensionsアドオンをダウンロードし、WordPressにプラグインとしてインストールする必要があります。ステップバイステップの手順については、WordPressプラグインのインストール方法をご覧ください。
次に、Insights “ Settingsに 行き、’Conversions’タブに切り替える。その後、「Add New Custom Dimension」をクリックする。
そうしたら、ドロップダウンメニューから「投稿タイプ」を選択します。
これにより、MonsterInsightsがブログ投稿やその他のカスタム投稿タイプのパフォーマンスを追跡することが有効化されます。
インサイト ” 人気投稿“に戻り、”人気投稿ウィジェット “にアクセスする。
Google アナリティクスから上位5投稿を追加する」トグルボタンを有効化するだけです。その後、’Test Automated Posts’をクリックし、設定が成功したかどうかを確認します。
Yesの場合、成功メッセージがポップアップ表示されます。
人気投稿データが正しく取得されています。ご注意:カスタムディメンションの設定時期によっては、Google アナリティクスから関連する Popular Posts のデータが読み込まれるまで最大 7 日かかる場合があります。
次のステップに進み、ウィジェットの上に表示されるタイトルを追加します。Check Out Our Most Popular Posts’などのようなものでもかまいません。
その下に、ウィジェットをすべての投稿タイプに表示するか、特定の投稿から除外するか、特定の投稿カテゴリーだけに表示するかを選択できます。
これらの設定は、ブログ投稿以外のカスタム投稿タイプを作成していて、人気投稿ウィジェットが無関係に見えると感じる場合に便利です。
最後のステップは、人気投稿ウィジェットを埋め込むことです。自動的に設置する、Gutenbergブロックを使う、サイドバーウィジェットとして追加する、ショートコードを使うなど、いくつかのオプションがあります。
オプションを一つずつ見ていこう。
人気投稿ウィジェットを自動的に埋め込む
過去のBehavior設定に一致する投稿日: すべてにウィジェットを表示したい場合は、Automatic Placementをお勧めします。
そのためには、「自動配置」ボタンを有効化するだけでよい。
このオプションの欠点は、投稿日やページに最適なウィジェットのデザインを調整できないことです。このタイプの機能が必要なら、次の方法を試してください。
人気投稿ブロックをページや投稿に埋め込む
ウィジェットがページや投稿日にどのように見えるかをもっとコントロールしたい場合、この方法が適しています。
まず、ウィジェットを設置したい投稿またはページのブロックエディターに行きます。その後、エディター内の任意の場所で「+」ブロック追加ボタンをクリックし、「Popular Posts」ブロックを探します。
ブロック設定パネルには、ウィジェットのテーマ、フォントサイズ、色、タイトル、レイアウト、投稿数を変更するオプションがあります。
これらの設定は、MonsterInsightsプラグインで見たものと似ている。
唯一の違いは、ウィジェットで選択される投稿を変更できないことです。
とはいえ、「動作設定」では、特定のカテゴリーからの投稿だけを表示することも可能です。こうすることで、人気投稿の選択肢をよりニーズに合わせたものにすることができます。
ブロックの設定に満足したら、投稿エディターとページエディターで「更新」ボタンをクリックするだけです。
テストサイトでの「人気投稿」ブロックはこんな感じです:
人気投稿ウィジェットをサイドバーに埋め込む
ウィジェット対応のサイドバーエリアがある非ブロックWordPressテーマを使用している場合、そこにPopular Postsウィジェットを追加することができる。これは、WordPressサイドバーにおすすめ投稿を追加する方法のカテゴリー:で行ったことである。
すべて外観 ” ウィジェットにアクセスするだけです。そして、サイドバーエリアの「+」ウィジェット追加ボタンをクリックし、「人気投稿 – MonsterInsights」ウィジェットを探してください。
前の方法と同様に、ウィジェットにはテーマの外観をカスタマイズするための同様の設定が含まれています。
何が違うかというと、インターフェースが若干トリッキーになっていることだ。設定を変更しても、ウィジェットが実際にどのように見えるかを見ることはできません。プレビューするには、別のウィジェットまたは別のエリアをクリックする必要があります。
ウィジェットの外観に問題がなければ、右上の「更新」をクリックしてください。
サイドバーが正しく見えるかどうか、あなたのサイトで確認してください。
私たちのはこんな感じだ:
Popular Postsウィジェットを特定のページにのみ表示させたい場合は、WordPressの特定のページでウィジェットを表示または非表示にする方法のガイドをご覧ください。
ショートコードで人気投稿ウィジェットを埋め込む
最後のオプションは、ショートコードを使用することです。この方法は、上記のオプションがあなたの特定のユースケースで機能しない場合に推奨されます。
Popular Posts Widgetタブで、「Embed Options」セクションまですべてスクロールダウンします。次に、「ショートコードを使用して表示」を選択し、「ショートコードをコピー」ボタンをクリックします。
その後、好きな場所にショートコードを配置するだけです。詳しくは、WordPressでショートコードを追加する方法をご覧ください。
方法2:コードでWordPressの人気投稿を表示する
MonsterInsightsの方法は、WordPressで最も人気のあるベストコンテンツを表示する最も簡単な方法です。しかし、もしあなたがコーディングに慣れているのであれば、WordPressで最も人気のある投稿を表示するためにコードを使用することもできます。
この方法では、WPCodeのようなコード・スニペット・プラグインを使用することをお勧めします。
WPCodeを使えば、WordPressファイルに直接触れることなくカスタムコードを安全に挿入することができます。さらに、この方法では複数のコードスニペットを使用する必要があるため、プラグインを使用すると、それらのすべての管理とトラッキングがはるかに容易になります。
まず、WordPressにWPCodeをインストールする必要がある。WPCodeには無料版もありますが、ここではPro版を使用します。正しい位置にコードを挿入するために必要な機能が備わっているからです。
ステップバイステップのインストールガイドについては、WordPressプラグインのインストール方法の投稿をお読みください。
WordPress投稿表示カウンター機能の追加
プラグインを有効化したら、ダッシュボードからCode Snippets ” + Add Snippetに 行く必要があります。Add Your Custom Code (New Snippet)」にマウスオーバーし、「Use snippet」をクリックします。
これで、WPCodeコード・スニペット・エディターに入りました。コードを挿入する前に、スニペットのタイトルを追加してください。
この最初のコードには、「WordPress Post Views Counter Function」のような名前を付けることができます。なぜなら、この最初のコードの目的は、WordPressの投稿表示数をカウントする関数を作成することだからです。
次に、コードタイプを「PHPスニペット」に変更する。この投稿から追加しなければならないコード・スニペットはすべて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);
}
}
//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ファイルにコードを挿入するのと同じです。
その後、ページの右上に移動し、コードを有効化する。
そして、「スニペットを保存」をクリックする。
この段階で、別の新しいカスタムコードスニペットを追加する必要があります。これは「Track Post Views Function Call」と名付けることができます。
このコードは上記の関数を呼び出し、個別投稿ページで有効化します。
wpb_set_post_views(get_the_ID());
このコード・スニペットで異なるのは、個別投稿ページで実行することを想定しているため、「Insert After Post」の場所を選択することです。
完了したら、コードを有効化して保存する。
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');
インサート方法は「自動インサート」、場所は「フロントエンドのみ」を選択できる。
前のステップと同じように、コードを有効化してスニペットを保存するだけです。
注: キャッシュプラグインを使用している場合、このテクニックは初期設定では動作しない可能性があります。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ブログで、表示セクション別に最も人気のある投稿がどのように見えるかです:
専門家のアドバイスサイトを永久に変更することなく、あなたのコードが動作するかどうかを確認するには、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.
Syed Balkhi
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!
Mrteesurez
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
MonsterInsights would mot show the view count by default if that is what you want to include with your popular posts.
管理者
mohadese esmaeeli
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
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
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.
Moinuddin Waheed
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
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.
管理者
Jiří Vaněk
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
WPBeginner Support
The code snippets should still work with the most up to date version of WordPress.
管理者
Jiří Vaněk
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
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.
Amy Ling
Is there a way to make it so it’s based on user vs in general?
WPBeginner Support
We do not have a recommended method for user specific popular posts at the moment.
管理者
Chris
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
While there is a complex way to have that workaround, we do not have a method we would recommend at this time.
管理者
thomas
How can I reset the meta keys or reset the counting??
Is there any function?
WPBeginner Support
If you’re using the custom code method, it is saved as a custom field in which case you can edit the count in the edit post area itself. You can see more on custom fields in our guide below:
https://www.wpbeginner.com/wp-tutorials/wordpress-custom-fields-101-tips-tricks-and-hacks/
管理者
saikat
yes, very helpful tutorial
WPBeginner Support
Glad our guide was helpful!
管理者
Amir
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
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.
管理者
locas
only 4 posts
I’ve tried to change to 10 but still 4 posts show up
‘posts_per_page’ => 10
WPBeginner Support
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
管理者
za
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!
WPBeginner Support
Glad our article could help
管理者
Chris
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
Sakshi Grover
This was very helpful.!!! Thanks a ton.!
Amit Biswas
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.
Hans
Thsi thing works greats.
Now I want the columnn in admin to be sortable. any idea how to do this?
many thanks!
Trevor
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?
Shwet
I have the same problem with this code.
Have you found any solution of this?
Fuchel
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.
Maya
How to show most popular posts on my home page?
Shaq
How do I do this for a weekly basis, most viewed posts each week?!
iftkhar hussain
ah , this works fine ;
thanks dear !
Bülent Sakarya
Hello..
Using w3total cache but count not working correctly.
don’t use child theme. how can I fix it?
thanks..
Ryley Ameden
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();
}
Philipp
Is there a possibility to count only unique visitors? Thank you
Zeeshan
Simple Awesome …. (Y)
Erwin Barendregt
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
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
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!
HiepTD
Hello, I am using WP Super Cache.
I do not know how this code works correctly.
Krishna
It is not working for Custom Post Type. Can you help me on this please..
John
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.
Gianmarco
Awesome thanks this is really useful, but a question. Doesn’t it slow down the loading of the page significantly?
ayaz
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.
Md Maruf Adnan Sami
How can i set Features post on Mobilepress Hompage?
Please give me that code.
gift charles
Thank you for this awesome post, you guys are the best
Bojan
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?
Blown
Hi, How can I show the most popular posts for the current week??
Ashish
Awesome Article !! Thanks. Would be better if code was explained in detail.
Dhiraj Kataria
I need advice on how r u to Load Word files to a Wordpress website please. Is there an easy way?
DarkSafka
Sadly this does not work with W3 Total Cache with Page Caching enabled. Coul not get any “fragmented caching” to work either.
Fakrul
Same here @DARKSAFKA . Not working.
Riya
nice code. work perfectly….
hmmm
you are right
REIBI
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
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
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!
Yonatan
Add this code to the query
‘date_query’ => array(
array(
‘after’ => ‘1 week ago’
)
)
Mawardiy
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
Alex
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.
6b
Really great instruction no need of plugin.works perfect.
Paritosh Arya
What table does this custom field get stored into? Is it the posts table or the postmeta?
ScoDal
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.
Marcos
Hello. Huge thanks for that. Works very well in my theme.
John
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?
Varange
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?
Denis
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
Kes
How do i make this work with w3 total cache? I’ve tried the fragment cache suggestion but changes nothing
Kes
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
jarc100
Thanks, this works as charm, but i didn’t get how to use it with the W3 Total Cache.
Jorge
Hello! How can I show the most popular posts for the current week?? Is there any possible? Thanks in advance.