Jedním z prostředků může být i widget nejaktivnější komentátorů. Neaktivnější lidé získají odkaz na svůj blog a otevřou si tak cestu nejen pro nové návštěvníky, ale i větší úctu vyhledávačů. Dejte si však pozor, takový widget přináší i rizika. Lidé nebudou komentovat proto, že chtějí něco říct, ale kvůli zpětnému odkazu. Množství spamu tak může narůst.
A nyní již k samotnému kódu, který z databáze vybere 5 nejaktivnějších komentátorů. Z přehledů je vyškrtnut uživatel s ID 1. Tedy vy. Uznejte, že by to nebyla zrovna fér soutěž a dopřejte tu slávu i ostatním.
class nejaktivnejsi extends WP_Widget { function nejaktivnejsi() { parent::WP_Widget(false, $name = 'nejaktivnejsi'); } function widget($args, $instance) { extract($args); $title = apply_filters('widget_title', $instance['title']); echo $before_widget; if ($title) echo $before_title . $title . $after_title; ?> <ul> <?php global $wpdb; foreach ($wpdb->get_results("SELECT COUNT(*) as komentaru, comment_author_url, comment_author FROM " . $wpdb->comments . " WHERE comment_approved = 1 AND user_id != 1 GROUP BY comment_author_email ORDER BY komentaru DESC LIMIT 5") as $autor) { ?> <li><?php if ($autor->comment_author_url != '') echo "<a href='" . $autor->comment_author_url . "'>"; echo $autor->comment_author; if ($autor->comment_author_url != '') echo "</a>"; ?> komentoval <?php echo $autor->komentaru ?>x</li> <?php } ?> </ul> <?php echo $after_widget; } function update($new_instance, $old_instance) { $instance = $old_instance; $instance['title'] = strip_tags($new_instance['title']); return $instance; } function form($instance) { $title = esc_attr($instance['title']); ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> <input id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <?php } } add_action('widgets_init', create_function('', 'return register_widget("nejaktivnejsi");'));