Track pageviews over time and order your posts by popularity on the front-end. Options include the number of days to retain and a timed delay to prevent duplicate pageviews per IP address.
This plugin requires Craft CMS 3.0.0 or later.
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require madebyraygun/trending-posts
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for Trending Posts.
You can change which sections to record, how many days of activity to keep, and visitor settings by creating a settings file in config/trending-posts.php.
return [
'trackDays' => 7, //default is 7 days
'trackSection' => [1,2], //limit tracking to specific sections
'visitorTimeout' => 15 //default is 15 minutes
];
The plugin uses an array of numerical section IDs to determine which entries to track. You can find a section's numerical ID by viewing the section in the admin control pannel (/admin/settings/sections) and clicking on the section name. For example: http://yoursite.dev/admin/settings/sections/1
Use the following twig tag to increment view counts. You can put this in a global footer or only in specific sections that you want to track.
{% do craft.trendingPosts.increment(entry.id) %}
To order entries by most viewed use
orderBy('popular')
Example:
For a single section
craft.entries.section('news').limit('3').orderBy('popular').all()
For multiple section
craft.entries.section(['news','home']).limit('3').orderBy('popular').all()
You can add the "Views" table column to your section on the back-end to see how many views a particular post has in the last X days. (X defaults to 7, which you can change in config/trending-posts.php)
Ideas?
Brought to you by Raygun
With initial development by Bhashkar Yadav