WP-PostRatings

Description

Usage

  1. Open wp-content/themes/<YOUR THEME NAME>/index.php
  2. You may place it in archive.php, single.php, post.php or page.php also.
  3. Find: <?php while (have_posts()) : the_post(); ?>
  4. Add Anywhere Below It (The Place You Want The Ratings To Show): <?php if(function_exists('the_ratings')) { the_ratings(); } ?>
  • If you DO NOT want the ratings to appear in every post/page, DO NOT use the code above. Just type in [ratings] into the selected post/page content and it will embed ratings into that post/page only.
  • If you want to embed other post ratings use [ratings id="1"], where 1 is the ID of the post/page ratings that you want to display.
  • If you want to embed other post ratings results, use [ratings id="1" results="true"], where 1 is the ID of the post/page ratings results that you want to display.

Development

https://github.com/lesterchan/wp-postratings

Credits

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 – Ratings Log Bottom
  • Admin – Ratings Log Top
  • Admin – Ratings Options
  • Admin – Ratings Templates
  • Ratings
  • Ratings Hover

FAQ

How To Change Schema Type?

<?php  
add_filter( 'wp_postratings_schema_itemtype', 'wp_postratings_schema_itemtype' );  
function wp_postratings_schema_itemtype( $itemtype ) {  
    return 'itemscope itemtype="http://schema.org/Recipe"';  
}  
?>

The default schema type is ‘Article’, if you want to change it to ‘Recipe’, you need to make use of the wp_postratings_schema_itemtype filter as shown in the sample code above.

How To Add Your Site Logo For Google Rich Snippets

<?php  
add_filter( 'wp_postratings_site_logo', 'wp_postratings_site_logo' );  
function wp_postratings_site_logo( $url ) {  
    return 'http://placehold.it/350/150.png';  
}  
?>

By default, the plugin will use your site header image URL as your site logo. If you want to change it, you need to make use of the wp_postratings_site_logo filter as shown in the sample code above.

How To Remove Ratings Image alt and title Text?

<?php  
add_filter( 'wp_postratings_ratings_image_alt', 'wp_postratings_ratings_image_alt' );  
function wp_postratings_ratings_image_alt( $alt_title_text ) {  
    return '';  
}  
?>

How To Display Comment Author Ratings?

add_filter( 'wp_postratings_display_comment_author_ratings', '__return_true' );

By default, the comment author ratings are not displayed. If you want to display the ratings, you need to make use of the wp_postratings_display_comment_author_ratings filter as shown in the sample code above.

How To use PNG images instead of GIF images?

function custom_rating_image_extension() {
    return 'png';
}
add_filter( 'wp_postratings_image_extension', 'custom_rating_image_extension' );

The default image extension if ‘gif’, if you want to change it to ‘png’, you need to make use of the wp_postratings_image_extension filter as shown in the sample code above.

How To change the cookie expiration time?

function custom_rating_cookie_expiration() {
    return strtotime( 'tomorrow' ) ;
}
add_filter( 'wp_postratings_cookie_expiration', 'custom_rating_cookie_expiration', 10, 0 );

The default cookie expiration if ‘time() + 30000000’, if you want to change the lenght of the experation, you need to make use of the wp_postratings_cookie_expiration filter as shown in the sample code above.

How Does WP-PostRatings Load CSS?

  • WP-PostRatings will load postratings-css.css from your theme’s CSS directory if it exists.
  • If it doesn’t exists, it will just load the default ‘postratings-css.css’ that comes with WP-PostRatings.
  • This will allow you to upgrade WP-PostRatings without worrying about overwriting your ratings styles that you have created.

How To Use Ratings Stats With Widgets?

  1. Go to WP-Admin -> Appearance -> Widgets
  2. The widget name is Ratings.

To Display Lowest Rated Post

<?php if (function_exists('get_lowest_rated')): ?>
    <ul>
        <?php get_lowest_rated(); ?>
    </ul>
<?php endif; ?>
  • Default: get_lowest_rated(‘both’, 0, 10)
  • The value ‘both’ will display both the lowest rated posts and pages.
  • If you want to display the lowest rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the lowest rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 lowest rated posts/pages.

To Display Lowest Rated Post By Tag

<?php if (function_exists('get_lowest_rated_tag')): ?>
    <ul>
        <?php get_lowest_rated_tag(TAG_ID); ?>
    </ul>
<?php endif; ?>
  • Default: get_lowest_rated_tag(TAG_ID, ‘both’, 0, 10)
  • Replace TAG_ID will your tag ID. If you want it to span several categories, replace TAG_ID with array(1, 2) where 1 and 2 are your categories ID.
  • The value ‘both’ will display both the lowest rated posts and pages.
  • If you want to display the lowest rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the lowest rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 lowest rated posts/pages.

To Display Lowest Rated Post In A Category

<?php if (function_exists('get_lowest_rated_category')): ?>
    <ul>
        <?php get_lowest_rated_category(CATEGORY_ID); ?>
    </ul>
<?php endif; ?>
  • Default: get_lowest_rated_category(CATEGORY_ID, ‘both’, 0, 10)
  • Replace CATEGORY_ID will your category ID. If you want it to span several categories, replace CATEGORY_ID with array(1, 2) where 1 and 2 are your categories ID.
  • The value ‘both’ will display both the lowest rated posts and pages.
  • If you want to display the lowest rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the lowest rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 lowest rated posts/pages.

To Display Highest Rated Post

<?php if (function_exists('get_highest_rated')): ?>
    <ul>
        <?php get_highest_rated(); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_rated(‘both’, 0, 10)
  • The value ‘both’ will display both the highest rated posts and pages.
  • If you want to display the highest rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the highest rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 highest rated posts/pages.

To Display Highest Rated Post By Tag

<?php if (function_exists('get_highest_rated_tag')): ?>
    <ul>
        <?php get_highest_rated_tag(TAG_ID); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_rated_tag(TAG_ID, ‘both’, 0, 10)
  • Replace TAG_ID will your tag ID. If you want it to span several categories, replace TAG_ID with array(1, 2) where 1 and 2 are your categories ID.
  • The value ‘both’ will display both the highest rated posts and pages.
  • If you want to display the highest rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the highest rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 highest rated posts/pages.

To Display Highest Rated Post In A Category

<?php if (function_exists('get_highest_rated_category')): ?>
    <ul>
        <?php get_highest_rated_category(CATEGORY_ID); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_rated_category(CATEGORY_ID, ‘both’, 0, 10)
  • Replace CATEGORY_ID will your category ID. If you want it to span several categories, replace CATEGORY_ID with array(1, 2) where 1 and 2 are your categories ID.
  • The value ‘both’ will display both the highest rated posts and pages.
  • If you want to display the highest rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the highest rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 highest rated posts/pages.

To Display Highest Rated Post Within A Given Period

<?php if (function_exists('get_highest_rated_range')): ?>
    <ul>
        <?php get_highest_rated_range('1 day'); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_rated_range(‘1 day’, ‘both’, 10)
  • The value ‘1 day’ will be the range that you want. You can use ‘2 days’, ‘1 month’, etc.
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 10 will display only the top 10 most rated posts/pages.

To Display Most Rated Post

<?php if (function_exists('get_most_rated')): ?>
    <ul>
        <?php get_most_rated(); ?>
    </ul>
<?php endif; ?>
  • Default: get_most_rated(‘both’, 0, 10)
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 most rated posts/pages.

To Display Most Rated Post In A Category

<?php if (function_exists('get_most_rated_category')): ?>
    <ul>
        <?php get_most_rated_category(CATEGORY_ID); ?>
    </ul>
<?php endif; ?>
  • Default: get_most_rated_category(CATEGORY_ID, ‘both’, 0, 10)
  • Replace CATEGORY_ID will your category ID. If you want it to span several categories, replace CATEGORY_ID with array(1, 2) where 1 and 2 are your categories ID.
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 most rated posts/pages.

To Display Most Rated Post Within A Given Period

<?php if (function_exists('get_most_rated_range')): ?>
    <ul>
        <?php get_most_rated_range('1 day'); ?>
    </ul>
<?php endif; ?>
  • Default: get_most_rated_range(‘1 day’, ‘both’, 10)
  • The value ‘1 day’ will be the range that you want. You can use ‘2 days’, ‘1 month’, etc.
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 10 will display only the top 10 most rated posts/pages.

To Display Highest Score Post

<?php if (function_exists('get_highest_score')): ?>
    <ul>
        <?php get_highest_score(); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_score(‘both’, 0, 10)
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 most rated posts/pages.

To Display Highest Score Post In A Category

<?php if (function_exists('get_highest_score_category')): ?>
    <ul>
        <?php get_highest_score_category(CATEGORY_ID); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_score_category(CATEGORY_ID, ‘both’, 0, 10)
  • Replace CATEGORY_ID will your category ID. If you want it to span several categories, replace CATEGORY_ID with array(1, 2) where 1 and 2 are your categories ID.
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 0 refers to the minimum votes required before the post get shown.
  • The value 10 will display only the top 10 most rated posts/pages.

To Display Highest Score Post Within A Given Period

<?php if (function_exists('get_highest_score_range')): ?>
    <ul>
        <?php get_highest_score_range('1 day'); ?>
    </ul>
<?php endif; ?>
  • Default: get_highest_score_range(‘1 day’, ‘both’, 10)
  • The value ‘1 day’ will be the range that you want. You can use ‘2 days’, ‘1 month’, etc.
  • The value ‘both’ will display both the most rated posts and pages.
  • If you want to display the most rated posts only, replace ‘both’ with ‘post’.
  • If you want to display the most rated pages only, replace ‘both’ with ‘page’.
  • The value 10 will display only the top 10 most rated posts/pages.

To Sort Highest/Lowest Rated Posts

  • You can use: <?php query_posts( array( 'meta_key' => 'ratings_average', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ); ?>
  • Or pass in the variables to the URL: http://yoursite.com/?r_sortby=highest_rated&amp;r_orderby=desc
  • You can replace desc with asc if you want the lowest rated posts.

To Sort Most/Least Rated Posts

  • You can use: <?php query_posts( array( 'meta_key' => 'ratings_users', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ); ?>
  • Or pass in the variables to the URL: http://yoursite.com/?r_sortby=most_rated&amp;r_orderby=desc
  • You can replace desc with asc if you want the least rated posts.

Reviews

🍂 1️⃣1️⃣ 26, 2024
Seems that Lester Chan is not supporting this plugin. I am currently unable to update the plugin in WordPress without issues. He is not responsive. The plugin was also supposed to report the ratings to Google which is does not. Why does WP allow abandoned plugins to remain on their site? If the plugins are not supported by the developers they should be removed.
🌸4️⃣ 8, 2024
Very great plugin, so far it works very well and meets expectations. The only thing I have a problem with is getting comfortable with adding custom icons, preferably as a path to the icon directory in the site theme instead of in the plugin.
🍂 1️⃣1️⃣ 1, 2022
Один пользователь может оценить только 1 материал на сайте? Бред! Только зря потратил время на установку!
Read all 179 reviews

Contributors & Developers

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

Contributors

“WP-PostRatings” has been translated into 12 locales. Thank you to the translators for their contributions.

Translate “WP-PostRatings” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

Version 1.91.2

  • FIXED: XSS in Google Rich Text Snippets

Version 1.91.1

  • FIXED: Read from default REMOTE_ADDR unless specified in options

Version 1.91

  • NEW: Supports specifying which header to read the user’s IP from

Version 1.90.1

  • FIXED: Support mutex lock for multi-site.

Version 1.90

  • FIXED: Use mutex lock to prevent race condition

Version 1.89.1

  • FIXED: Change all http://schema.org to https://schema.org

Version 1.89

  • NEW: Added post_id to second argument of wp_postratings_expand_ratings_template.
  • NEW Removed passed by reference for get_post()

Version 1.88

  • NEW: Added filter wp_postratings_disable_richsnippet to disable richsnippet on the fly.
  • NEW: Added a setting in WP-Admin -> Ratings -> Rating Options to disable the ratings component of the Rich Snippet. Props @8ctopus

Version 1.87

  • FIXED: Rename filter expand_ratings_template to wp_postratings_expand_ratings_template for consistency.
  • FIXED: Remove wp_print_scripts
  • FIXED: Added additional to Google Structured Data despite it is no longer working. Will consider removing it next time
  • NEW: Added wp_postratings_ipaddress and wp_postratings_hostname to allow user to overwrite it.
  • NEW: Add loading alt text filer
  • NEW: Add wp_postratings_always_log filter to allow user to always log no matter what

Version 1.86.2

  • FIXED: Wrong type check for inser_half which affects half rating image.

Version 1.86.1

  • FIXED: Sanitize file name for images folder in WP-Admin

Version 1.86

  • NEW: Hashed IP and Anonymize Hostname to make it GDPR compliance
  • NEW: If Do Not Log is set in Rating Options, do not log to DB

Version 1.85

  • NEW: wp_postratings_post_thumbnail filter
  • FIXED: Take into consideration logging method when dealing with ratings in comments
  • FIXED: Compressed Images

Version 1.84.1

  • NEW: New wp_postratings_google_structured_data filter to filter Google Structured Data.
  • FIXED: unnamed-file.numbers due to sanitize_file_name().
  • FIXED: Generate the full path to image to prevent Googlebot from 404.

Version 1.84

  • NEW: Added ‘%POST_THUMBNAIL%’ Template variable.
  • NEW: Added ‘wp_postratings_cookie_expiration’ filter. Props @ramiy.
  • NEW: Added ‘wp_postratings_ratings_image_alt’ filter
  • NEW: Added more meta itemprops to pass Structured Data Testing Tool test
  • NEW: Remove po/mo files from the plugin. Props @ramiy.
  • NEW: Use translate.wordpress.org to translate the plugin. Props @ramiy.
  • NEW: Add phpDocs and update file headers. Props @ramiy.
  • NEW: Adds the ability to restrict voting rights to members of the blog. Props @stephenharris.
  • FIXED: Use the new admin headings hierarchy with H1, H2, H3 tags. Props @ramiy.
  • FIXED: Move *.js files to /js/ sub-folder. Props @ramiy.
  • FIXED: Move *.css files to /css/ sub-folder. Props @ramiy.
  • FIXED: Move the scripts to a separate file in /includes/ sub-folder. Props @ramiy.
  • FIXED: Move the widget to a separate file in /includes/ sub-folder. Props @ramiy.
  • FIXED: Move the shortcode to a separate file in /includes/ sub-folder. Props @ramiy.
  • FIXED: Move activation hooks to a separate file in /includes/ sub-folder. Props @ramiy.
  • FIXED: Move admin functions and hooks to a separate file in /includes/ sub-folder. Props @ramiy.
  • FIXED: Move the i18n load to a separate file in /includes/ sub-folder. Props @ramiy.
  • FIXED: Replace die() with wp_die() and add i18n to the strings. Props @ramiy.
  • FIXED: Update translation strings to avoid using ‘post’ as the post type. Props @ramiy.
  • FIXED: Minor translation string fix. Props @ramiy.
  • FIXED: Update rating widget. Props @ramiy.
  • FIXED: Security hardening. Props @stephenharris.

Version 1.83.2

  • FIXED: Unauthenticated blind SQL injection in ratings_most_orderby(). Props @Ben Bidner from Automattic.

Version 1.83.1

  • FIXED: Remove No Results template from the_ratings_results()

Version 1.83

  • NEW: Added ‘wp_postratings_display_comment_author_ratings’ filter. Props @ramiy.
  • FIXED: Removing Loading … because SERP will index the text if the ratings is at the top of the article
  • FIXED: Move ‘wp_postratings_image_extension’ filter to init()
  • FIXED: Show headline, datePublished and image despite there is no ratings
  • FIXED: Show post without ratings as well when sorting is done in URL. Props @talljosh.

Version 1.82

  • NEW: Added ‘wp_postratings_image_extension’ filter. Props @ramiy.
  • FIXED: Added headline, datePublished, image to Article Schema type
  • FIXED: Deprecated PHP4 constructor in WordPress 4.3
  • FIXED: Remove schema code when Rich Snippets is off

Version 1.81

  • NEW: Added worstRating of 1. Props @rafaellop
  • NEW: Checked for defined() for RATINGS_IMG_EXT to allow overwrite
  • FIXED: Integration with WP-Stats

Version 1.80

  • NEW: Suppor Custom Post Types in Widgets
  • NEW: Added ‘wp_postratings_process_ratings_user’, ‘wp_postratings_process_ratings_userid’ & ‘wp_postratings_check_rated’ filters
  • NEW: Supports WordPress Multisite Network Activate
  • NEW: Uses WordPress native uninstall.php

Version 1.79

  • NEW: Use POST for ratings instead
  • NEW: Add ‘wp_postratings_schema_itemtype’ filter so that you can change the Schema Type. See the FAQ for sample.
  • FIXED: Use ‘is_rtl()’ instead of $text_direction

Version 1.78

  • NEW: Uses Dash Icons
  • NEW: Option to turn off Google Rich Snippets
  • FIXED: Use SITECOOKIEPATH instead of COOKIEPATH. Props jbrule.
  • FIXED: If global $id is 0, use get_the_ID(). Props instruite.
  • FIXED: use esc_attr() and esc_js() to escape characters

Version 1.77

  • NEW: Add in %POST_ID% template variables
  • FIXED: Ensure Google Rich Snippet only displays in main loop and not in the widget
  • FIXED: Removed reviewCount from Google Rich Snippet
  • FIXED: Make the ratings widget more optimized
  • FIXED: Some widget templates are using postratings_template_mostrated instead of postratings_template_highestrated

Version 1.76

  • FIXED: No longer needing add_post_meta() if update_post_meta() fails
  • FIXED: Update ‘Individual Rating Text/Value’ Display no working due to missing nonce
  • FIXED: Added stripslashes() to remove slashes in the templates
  • FIXED: Check whether it is an array to prevent array_key_exists() from throwing a warning.

Version 1.75

  • Change htmlspecialchars to esc_attr(). Props Ryan Satterfield.
  • Change esc_attr() to wp_kses() For itemprop. Props oneTarek.

Version 1.74

  • check_rated_username() should be using $user_ID. Props Artem Gordinsky.

Version 1.73

  • Add Stars Flat (PNG) Icons. Props hebaf.
  • Change Schema From http://schema.org/Product To http://schema.org/Article