Star Rating Shortcode – jednoduchý WordPress plugin
Pro gsklub.cz jsem nedávno napsal jednoduchý WordPress plugin, který umožňuje po zadání shortcodu zobrazit hodnocení ve formě hvězdiček.
Shortcode je ve tvaru:
[wp_star_rating stars_no="5" rating="3.5" star_width="30"]
Parametry shortcodu jsou:
stars_no: počet hvězdiček
rating: hodnocení
star_width: velikost hvězdičky
Hodnocení se pak zobrazí takto:

Plugin si můžete zdarma stáhnout, nebo se níže podívat na kód, který takovou funkcionalitu zařídí.
<?php
/*
Plugin Name: Star Rating
Description: Simple star rating shortcode
Author: Václav Greif
Author URI: https://wp-programator.cz/
Version: 1.0
*/
namespace WPProgramator\StarRatingShortcode;
final class Init {
/**
* Private ctor so nobody else can instance it
*/
private function __construct() {
$this->require_classes();
$this->add_actions();
}
/**
* Require classes
*/
public function require_classes() {
}
/**
* Add actions
*/
public function add_actions() {
add_shortcode( 'wp_star_rating', array( $this, 'render_star_rating' ) );
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_scripts' ) );
add_action( 'wp_footer', array( $this, 'initialize_rating' ) );
}
/**
* Call this method to get singleton
* @return Init
*/
public static function instance() {
static $inst = null;
if ( null === $inst ) {
$inst = new Init();
}
return $inst;
}
/**
* Render the shortcode
*
* @param $atts
*
* @return false|string
*/
public function render_star_rating( $atts ) {
$a = shortcode_atts(
array(
'stars_no' => 5,
'rating' => 0,
'star_width' => 20,
),
$atts
);
ob_start(); ?>
<div data-rateyo-num-stars="<?php echo $a['stars_no']; ?>" data-rateyo-rating="<?php echo floatval( $a['rating'] ); ?>" data-rateyo-read-only="true" data-rateyo-star-width="<?php echo $a['star_width'] ?>px" class="stars"></div>
<?php
return ob_get_clean();
}
/**
* Enqueue frontend scripts
*/
public function enqueue_frontend_scripts() {
wp_enqueue_style( 'rate-yo', 'https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.css', [], 1 );
wp_enqueue_script( 'rate-yo', 'https://cdnjs.cloudflare.com/ajax/libs/rateYo/2.3.2/jquery.rateyo.min.js', array( 'jquery' ), 1, true);
}
/**
* Initialize Star rating
*/
function initialize_rating() { ?>
<script type="text/javascript">
jQuery(document).ready(function ($) {
$(".stars").rateYo();
});
</script>
<?php }
}
Init::instance();
Do nového roku přeji všem hodně štěstí a spoustu zábavy!
Václav Greif se programování pro Wordpress věnuje více než 16 let. Za tu dobu nasbíral mnoho zkušeností s tvorbou pluginů pro Wordpress, úpravou šablon a programováním komplexních funkcionalit. Věnuje se programování pro Wordpress a školení programátorů.
