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ů.