Title: WP-Polls
Author: Lester Chan
Published: <strong>Siilo 3, 2006</strong>
Last modified: Siilo 18, 2025

---

Search plugins

![](https://ps.w.org/wp-polls/assets/banner-772x250.jpg?rev=1206760)

![](https://ps.w.org/wp-polls/assets/icon.svg?rev=977996)

# WP-Polls

 By [Lester Chan](https://profiles.wordpress.org/gamerz/)

[Download](https://downloads.wordpress.org/plugin/wp-polls.2.77.3.zip)

 * [Details](https://fuc.wordpress.org/plugins/wp-polls/#description)
 * [Reviews](https://fuc.wordpress.org/plugins/wp-polls/#reviews)
 * [Development](https://fuc.wordpress.org/plugins/wp-polls/#developers)

 [Support](https://wordpress.org/support/plugin/wp-polls/)

## Description

WP-Polls is extremely customizable via templates and css styles and there are tons
of options for you to choose to ensure that WP-Polls runs the way you wanted. It
now supports multiple selection of answers.

### Development

[https://github.com/lesterchan/wp-polls](https://github.com/lesterchan/wp-polls)

### Credits

 * Plugin icon by [Freepik](http://www.freepik.com) from [Flaticon](http://www.flaticon.com)

### Donations

I spent most of my free time creating, updating, maintaining and supporting these
plugins, if you really love my plugins and could spare me a couple of bucks, I will
really appreciate it. If not feel free to use it without any obligations.

## Screenshots

 * [[
 * Admin – All Poll
 * [[
 * Admin – Manage Polls
 * [[
 * Admin – Poll Options
 * [[
 * Admin – Poll Templates
 * [[
 * Admin – Poll Widget
 * [[
 * Admin – Uninstall Poll
 * [[
 * Poll – Single Poll Answer
 * [[
 * Poll – Mutiple Poll Answers
 * [[
 * Poll – Results
 * [[
 * Poll – Archive

## FAQ

### General Usage (Without Widget)

    ```
    <?php if ( function_exists( 'vote_poll' ) && ! in_pollarchive() ): ?>
        <li>
            <h2>Polls</h2>
            <ul>
                <li><?php get_poll();?></li>
            </ul>
            <?php display_polls_archive_link(); ?>
        </li>
    <?php endif; ?>
    ```

 * To show specific poll, use `<?php get_poll(2); ?>` where 2 is your poll id.
 * To show random poll, use `<?php get_poll(-2); ?>`
 * To embed a specific poll in your post, use `[poll id="2"]` where 2 is your poll
   id.
 * To embed a random poll in your post, use `[poll id="-2"]`
 * To embed a specific poll’s result in your post, use `[poll id="2" type="result"]`
   where 2 is your poll id.

### General Usage (With Widget)

 1. Go to `WP-Admin -> Appearance -> Widgets`.
 2. You can add the Polls Widget by clicking on the ‘Add’ link besides it.
 3. After adding, you can configure the Polls Widget by clicking on the ‘Edit’ link
    besides it.
 4. Click ‘Save Changes’.
 5. Scroll down for instructions on how to create a Polls Archive.

### How To Add A Polls Archive?

 1. Go to `WP-Admin -> Pages -> Add New`.
 2. Type any title you like in the post’s title area.
 3. If you ARE using nice permalinks, after typing the title, WordPress will generate
    the permalink to the page. You will see an ‘Edit’ link just beside the permalink.
 4. Click ‘Edit’ and type in `pollsarchive` in the text field and click ‘Save’.
 5. Type `[page_polls]` in the post’s content area.
 6. Click ‘Publish’.

 * If you ARE NOT using nice permalinks, you need to go to `WP-Admin -> Polls ->
   Poll Options` and under `Poll Archive -> Polls Archive URL`, you need to fill
   in the URL to the Polls Archive Page you created above.

### Why doesn’t my poll’s answers add up to 100%?

 * It is because of rounding issues. To make it always round up to 100%, the last
   poll’s answer will get the remainding percentage added to it. To enable this 
   feature, add this to your theme’s functions.php: `add_filter( 'wp_polls_round_percentage','
   __return_true' );`

### How Does WP-Polls Load CSS?

 * WP-Polls will load `polls-css.css` from your theme’s directory if it exists.
 * If it doesn’t exists, it will just load the default `polls-css.css` that comes
   with WP-Polls.
 * This will allow you to upgrade WP-Polls without worrying about overwriting your
   polls styles that you have created.

### Why In Internet Explorer (IE) The poll’s Text Appear Jagged?

 * To solve this issue, Open poll-css.css
 * Find: `/* background-color: #ffffff; */`
 * Replace: `background-color: #ffffff;` (where #ffffff should be your background
   color for the poll.)

### How Do I Have Individual Colors For Each Poll’s Bar?

 * Courtesy Of [TreedBox.com](http://treedbox.com)
 * Open poll-css.css
 * Add to the end of the file:

    ```
    .wp-polls-ul li:nth-child(01) .pollbar{ background:#8FA0C5}
    .wp-polls-ul li:nth-child(02) .pollbar{ background:#FF8}
    .wp-polls-ul li:nth-child(03) .pollbar{ background:#ff8a3b}
    .wp-polls-ul li:nth-child(04) .pollbar{ background:#a61e2a}
    .wp-polls-ul li:nth-child(05) .pollbar{ background:#4ebbff}
    .wp-polls-ul li:nth-child(06) .pollbar{ background:#fbca54}
    .wp-polls-ul li:nth-child(07) .pollbar{ background:#aad34f}
    .wp-polls-ul li:nth-child(08) .pollbar{ background:#66cc9a}
    .wp-polls-ul li:nth-child(09) .pollbar{ background:#98CBCB}
    .wp-polls-ul li:nth-child(10) .pollbar{ background:#a67c52}
    .wp-polls-ul li .pollbar{ transition: background 0.7s ease-in-out }
    .wp-polls-ul li .pollbar:hover{ background:#F00 }
    ```

### To Display Total Polls

    ```
    <?php if ( function_exists( 'get_pollquestions' ) ): ?>
        <?php get_pollquestions(); ?>
    <?php endif; ?> 
    ```

### To Display Total Poll Answers

    ```
    <?php if ( function_exists( 'get_pollanswers' ) ): ?>
        <?php get_pollanswers(); ?>
    <?php endif; ?> 
    ```

### To Display Total Poll Votes

    ```
    <?php if ( function_exists( 'get_pollvotes' ) ): ?>
        <?php get_pollvotes(); ?>
    <?php endif; ?> 
    ```

### To Display Poll Votes by ID

    ```
    <?php if ( function_exists( 'get_pollvotes_by_id' ) ): ?>
        <?php get_pollvotes_by_id($poll_id); ?>
    <?php endif; ?>
    ```

### To Display Total Poll Voters

    ```
    <?php if ( function_exists( 'get_pollvoters' ) ): ?>
        <?php get_pollvoters(); ?>
    <?php endif; ?> 
    ```

### To Display Poll Time by ID and date format

    ```
    <?php if ( function_exists( 'get_polltime' ) ): ?>
        <?php get_polltime( $poll_id, $date_format ); ?>
    <?php endif; ?>
    ```

### Translating the template

The plugin templates can be translated via template variables.
 There are these 
filters for the custom template variables

    ```
    wp_polls_template_votebody_variables
    wp_polls_template_votefooter
    wp_polls_template_resultheader_variables
    wp_polls_template_resultbody_variables
    wp_polls_template_resultfooter_variables
    ```

Add filter to your theme and register custom variable where you will add your translation.

Good practice is to name them for example with prefix `STR_` in the example `STR_TOTAL_VOTERS`.

    ```
        /**
         * Localize wp_polls_template_resultfooter_variables.
         *
         * @param array $variables An array of template variables.
         * @return array $variables Modified template variables.
         */
        function wp_polls_template_resultfooter_variables( $variables ) {

            // Add strings.
            $variables['%STR_TOTAL_VOTERS%'] = __( 'Total voters', 'theme-textdomain' );

            return $variables;
        }

    // Trigger the filter
    add_filter( 'wp_polls_template_resultfooter_variables', 'wp_polls_template_resultfooter_variables' , 10, 1 );
    ```

In the admin side just call the custom variable like so and the variable has been
translated in the front-end.
 %STR_TOTAL_VOTERS%’

## Reviews

![](https://secure.gravatar.com/avatar/e568a48fa12155130c23116d7be303764dca7638a7257f79507e1528954fd0f7?
s=60&d=retro&r=g)

### 󠀁[Thanks for the plugin and a suggestion](https://wordpress.org/support/topic/thanks-for-the-plugin-and-a-suggestion/)󠁿

 [joel05](https://profiles.wordpress.org/joel05/) Siilto 27, 2025

This plugin is perfect. Thank you so much to the creators. The only thing that I
miss is being able to make anonymous polls, so I would like to be able to activate
an option in the poll for anonymous polls, in which the logs show all the votes 
together, without indicating what option each person has voted for.

![](https://secure.gravatar.com/avatar/76e56af37dbb9acd68eb7f218690807399384e9ffe79a100833efa7026bf3ad7?
s=60&d=retro&r=g)

### 󠀁[Awesome work!](https://wordpress.org/support/topic/awesome-work-150/)󠁿

 [Zeljko Jagust](https://profiles.wordpress.org/zjagust/) Duujal 22, 2024

For the ones who know something about HTML and CSS syntax, this plugin is perfect!
It does exactly what is needed regarding polls, while the looks can be fully customized.
IMHO, a brilliant piece of work!

![](https://secure.gravatar.com/avatar/b386455620084633756983fc57b321d21ecfcba3a1be005259e7fd0fc9c5fce6?
s=60&d=retro&r=g)

### 󠀁[Used for long time, now got a problem](https://wordpress.org/support/topic/used-for-long-time-now-got-a-problem/)󠁿

 [Dani](https://profiles.wordpress.org/daniw42/) Seeɗto 29, 2023

Hi there, I’ve been using this plugin and loved it for its simplicity alongside 
with the ability to customize the look and feel. Somehow, at some point, the admin
interface changed and I am now able to see the answers of all users. Before, I was
only able to see how many users voted for each answer, not who. This is a major 
problem for me. Is there any way to hide the usernames from the answers given? I
need to see which users voted, but not what answer they gave. The answers should
only be seen as a total for each option. Thanks

![](https://secure.gravatar.com/avatar/02b3df1cb95d3eac280f2a76c166cef531ca595427851155fbc424cf19f64c5e?
s=60&d=retro&r=g)

### 󠀁[Nice feature set, doesn’t work with cache](https://wordpress.org/support/topic/nice-feature-set-doesnt-work-with-cache/)󠁿

 [expirator](https://profiles.wordpress.org/expirator/) Yarkomaa 21, 2022

Love the feature set, easy to use, great to work with, but it fails with my cache
setup (standard Cloudflare) setup. Have to remove it a site and move to another 
solution, sadly this was after my install, setting up on my custom post types, etc.
Would love to see it updated in the future.

![](https://secure.gravatar.com/avatar/4dffc932532d29fddfdd3918d64e0b20c3206c568c90d7359df749a53f80b9f2?
s=60&d=retro&r=g)

### 󠀁[Excellent](https://wordpress.org/support/topic/excellent-12039/)󠁿

 [redima](https://profiles.wordpress.org/redima/) Morso 23, 2022

Excellent, easy going plugin. Thank you.

![](https://secure.gravatar.com/avatar/290933bdd0a253ba0036e5fc61dc9bb1e7c95d589406270ba0a69aeb6a9a1fb9?
s=60&d=retro&r=g)

### 󠀁[Only one question](https://wordpress.org/support/topic/only-one-question/)󠁿

 [astrodates](https://profiles.wordpress.org/astrodates/) MBooy 23, 2022

You can have unlimited answers, but only one question?

 [ Read all 136 reviews ](https://wordpress.org/support/plugin/wp-polls/reviews/)

## Contributors & Developers

“WP-Polls” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ Lester Chan ](https://profiles.wordpress.org/gamerz/)

“WP-Polls” has been translated into 16 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/wp-polls/contributors)
for their contributions.

[Translate “WP-Polls” into your language.](https://translate.wordpress.org/projects/wp-plugins/wp-polls)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wp-polls/), check out
the [SVN repository](https://plugins.svn.wordpress.org/wp-polls/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/wp-polls/) by [RSS](https://plugins.trac.wordpress.org/log/wp-polls/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

### Version 2.77.3

 * FIXED: XSS In poll-logs.php.

### Version 2.77.2

 * FIXED: Read from default REMOTE_ADDR unless specified in options

### Version 2.77.1

 * FIXED: Support mutex lock for multi-site. Props @yrkmann.

### Version 2.77.0

 * NEW: Use mutex lock to prevent race condition.

### Version 2.76.0

 * NEW: Supports specifying which header to read the user’s IP from. Props Marc 
   Montpas.

### Version 2.75.6

 * NEW: New filter for template variables: wp_polls_template_votebody_variables,
   wp_polls_template_votefooter, wp_polls_template_resultheader_variables, wp_polls_template_resultbody_variables,
   wp_polls_template_resultfooter_variables. Props @Liblastic.
 * NEW: composer.json
 * FIXED: Missing space for check_voted_username MySQL query

### Version 2.75.5

 * NEW: New filter for templates: wp_polls_template_resultheader_markup, wp_polls_template_resultbody_markup,
   wp_polls_template_resultbody2_markup, wp_polls_template_resultfooter_markup, 
   wp_polls_template_resultfooter2_markup. Props @Jaska.

### Version 2.75.4

 * FIXED: Unable to edit poll because of class-wp-block-parser.php.

### Version 2.75.3

 * FIXED: Broken filter for templates
 * FIXED: Divison by 0 by totalvoters
 * FIXED: Add whitelist to sortby poll answers

### Versiob 2.75.2

 * FIXED: Missing str_replace for wp_polls_template filter

### Version 2.75.1

 * FIXED: Use array() instead of [] as a few users are still on < PHP 5.4. Props
   @bearlydoug.
 * FIXED: pollq_expiry is now 0 instead of blank string. Props @hpiirainen.

### Version 2.75

 * FIXED: Standardize all filters to begin with `wp_polls` rather than `poll`
 * NEW: Added `wp_polls_ipaddress` and `wp_polls_hostname` to allow user to overwrite
   it.

### Version 2.74.1

 * FIXED: Don’t use PHP 5.4 Short array syntax.
 * FIXED: Division by zero
 * FIXED: Wrong database column type for pollq_expiry

### Version 2.74

 * NEW: Hashed IP and anonymize Hostname to make it GDPR compliance
 * NEW: If Do Not Log is set in Poll Options, do not log to DB
 * NEW: Support %POLL_MULTIPLE_ANSWER_PERCENTAGE%. This is total votes divided by
   total voters.

### Version 2.73.8

 * FIXED: Bug fixes and stricter type checking

### Version 2.73.7

 * FIXED: Unable to save input HTML tags for footer templates

### Version 2.73.6

 * FIXED: Unable to vote for multiple answers
 * FIXED: input HTML tags being removed when saving templates

### Version 2.73.5

 * FIXED: Parsed error in SERVER variable.

### Version 2.73.4

 * FIXED: sanitize_key on top of intval.

### Version 2.73.3

 * NEW: Added sort by votes casted to poll answers.
 * NEW: For polls with mutiple answers, we divided by total votes instead of total
   voters. Props @ljxprime.
 * FIXED: Do not display poll option is not respected when poll is closed.
 * FIXED: pollip_qid, pollip_aid, pollip_timestamp are now int(10) in pollsip table.
 * FIXED: pollq_expiry is now int(10) in pollsq table.

### Version 2.73.2

 * NEW: Bump WordPress 4.7
 * FIXED: Change cron to hourly instead of twice daily.

### Version 2.73.1

 * FIXED: Allow local IP
 * FIXED: XSS on Poll bar option. Props [Netsparker Web Application Security Scanner](https://www.netsparker.com/)
 * FIXED: Stricter Poll pptions check

### Version 2.73

 * NEW: Display Poll Questions at the top of the Poll Logs table
 * FIXED: Remove slashes

### Version 2.72

 * NEW: Use translate.wordpress.org to translate the plugin
 * FIXED: SQL Injection fixes. Props [Jay Dansand](https://github.com/jaydansand)
 * FIXED: Use $wpdb->insert(), $wpdb->update() and $wpdb->delete() as much as possible
 * FIXED Remove poll_archive_show option from UI

### Version 2.71

 * FIXED: Use wp_kses_post() to get filter always bad tags

### Version 2.70

 * NEW: Add wp_polls_vote_poll_success action hook
 * NEW: Add wp_polls_add_poll, wp_polls_update_poll, wp_polls_delete_poll action
   hooks
 * FIXED: PHP Notices
 * FIXED: Removed not needed wp_print_scripts
 * FIXED: Use esc_attr() and esc_textarea() instead of htmlspecialchars(). Props
   [Govind Singh](https://in.linkedin.com/pub/govind-singh/21/1a9/bab)

## Meta

 *  Version **2.77.3**
 *  Last updated **1 year ago**
 *  Active installations **40,000+**
 *  WordPress version ** 4.9.6 or higher **
 *  Tested up to **6.7.5**
 *  Languages
 * [Arabic](https://ar.wordpress.org/plugins/wp-polls/), [Bulgarian](https://bg.wordpress.org/plugins/wp-polls/),
   [Chinese (China)](https://cn.wordpress.org/plugins/wp-polls/), [Czech](https://cs.wordpress.org/plugins/wp-polls/),
   [Danish](https://da.wordpress.org/plugins/wp-polls/), [Dutch](https://nl.wordpress.org/plugins/wp-polls/),
   [English (US)](https://wordpress.org/plugins/wp-polls/), [French (France)](https://fr.wordpress.org/plugins/wp-polls/),
   [German](https://de.wordpress.org/plugins/wp-polls/), [Hungarian](https://hu.wordpress.org/plugins/wp-polls/),
   [Portuguese (Brazil)](https://br.wordpress.org/plugins/wp-polls/), [Russian](https://ru.wordpress.org/plugins/wp-polls/),
   [Spanish (Chile)](https://cl.wordpress.org/plugins/wp-polls/), [Spanish (Spain)](https://es.wordpress.org/plugins/wp-polls/),
   [Spanish (Venezuela)](https://ve.wordpress.org/plugins/wp-polls/), [Turkish](https://tr.wordpress.org/plugins/wp-polls/),
   and [Ukrainian](https://uk.wordpress.org/plugins/wp-polls/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/wp-polls)
 * Tags
 * [booth](https://fuc.wordpress.org/plugins/tags/booth/)[poll](https://fuc.wordpress.org/plugins/tags/poll/)
   [polling](https://fuc.wordpress.org/plugins/tags/polling/)[polls](https://fuc.wordpress.org/plugins/tags/polls/)
   [vote](https://fuc.wordpress.org/plugins/tags/vote/)
 *  [Advanced View](https://fuc.wordpress.org/plugins/wp-polls/advanced/)

## Ratings

 4.2 out of 5 stars.

 *  [  93 5-star reviews     ](https://wordpress.org/support/plugin/wp-polls/reviews/?filter=5)
 *  [  15 4-star reviews     ](https://wordpress.org/support/plugin/wp-polls/reviews/?filter=4)
 *  [  4 3-star reviews     ](https://wordpress.org/support/plugin/wp-polls/reviews/?filter=3)
 *  [  4 2-star reviews     ](https://wordpress.org/support/plugin/wp-polls/reviews/?filter=2)
 *  [  20 1-star reviews     ](https://wordpress.org/support/plugin/wp-polls/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wp-polls/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wp-polls/reviews/)

## Contributors

 *   [ Lester Chan ](https://profiles.wordpress.org/gamerz/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wp-polls/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://lesterchan.net/site/donation/)