Skip to content
Upvote plugin for Craft CMS
Branch: v2
Clone or download
Latest commit d827481 Sep 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Ensure plugins have been loaded Sep 25, 2019 (v2.0.4) Sep 25, 2019 (v2.0.0) Compatible with Craft 3 May 8, 2018 (v2.0.0) Compatible with Craft 3 May 8, 2018
composer.json (v2.0.4) Sep 25, 2019

Upvote plugin for Craft CMS

Lets your users upvote/downvote, "like", or favorite any type of element.

This version is for Craft 3. To install it, visit the Plugin Store in your site's Control Panel.

For the Craft 2 version, see

Upvote & Downvote (similar to Stack Exchange)

Just specify the element ID of the item you want users to vote on. Any element type (Entry, Asset, User, etc) will work!

    {% for entry in craft.entries.section('superHeroes') %}
                <div>{{ craft.upvote.upvote( }}</div>
                <div>{{ craft.upvote.tally( }}</div>
                <div>{{ craft.upvote.downvote( }}</div>
            <td>{{ entry.title }}</td>
    {% endfor %}

"Like" (similar to Facebook)

Very similar to the configuration described above, except with:

  • Downvoting disabled
  • Customized "up" icon

"Favorite" (similar to a bookmarking system)

You can easily see what votes have been cast by a particular user...


Read more about using the user voting history.

Customize Icons

It's easy to customize your icons. You can either adjust the CSS, or replace the icons entirely.

{% do craft.upvote.setIcons({
    up   : '<i class="fa fa-thumbs-up"></i>',
    down : '<i class="fa fa-thumbs-down"></i>',
}) %}

By default, Upvote uses the Font Awesome library. Which means you can easily swap to a different icon from the Font Awesome collection. And if you'd rather not use Font Awesome, you can disable the library from being included at all.

Sort by Highest Voted

Once your users have cast votes, you'll want to know which items are the most popular...

{% set heroes = craft.entries.section('superHeroes') %}
{% do craft.upvote.sort(heroes) %}

This will grab the list of elements normally, then sort them by highest voted.


Here's a screenshot of the plugin's settings page...

To see some other ways that Upvote is flexible, check out the full documentation...

Anything else?

We've got other plugins too!

Check out the full catalog at

You can’t perform that action at this time.