[Plugin: WPMU Recent Posts Widget] Links to other widgets like this?
-
Just wondering if there are links to other widgets like this. I can’t find anything very easily after wpmudev.org got super commercial (looking).
https://www.ads-software.com/extend/plugins/multisite-recent-posts-widget/
-
This plugin is great, I was recently asked to make it into a multiple-instance widget and adapted it to the new API.
It was worked on by Myself and user Davemac.I don’t know if you want to do a version update or if you’d like to make a new widget, but the code for multiple-instance is below:
function wpms_recent_posts_mu($how_many=10, $how_long=0, $titleOnly=true, $begin_wrap="\n<li>", $end_wrap="</li>") { global $wpdb; global $table_prefix; $counter = 0; // get a list of blogs in order of most recent update. show only public and nonarchived/spam/mature/deleted if ($how_long > 0) { $blogs = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs WHERE public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' AND last_updated >= DATE_SUB(CURRENT_DATE(), INTERVAL $how_long DAY) ORDER BY last_updated DESC"); } else { $blogs = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs WHERE public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY last_updated DESC"); } if ($blogs) { // Should we make <ul> optional since this is a widget now? echo "<ul>"; foreach ($blogs as $blog) { // we need _posts and _options tables for this to work $blogOptionsTable = $wpdb->base_prefix.$blog."_options"; $blogPostsTable = $wpdb->base_prefix.$blog."_posts"; $options = $wpdb->get_results("SELECT option_value FROM $blogOptionsTable WHERE option_name IN ('siteurl','blogname') ORDER BY option_name DESC"); // we fetch the title and ID for the latest post if ($how_long > 0) { $thispost = $wpdb->get_results("SELECT ID, post_title FROM $blogPostsTable WHERE post_status = 'publish' AND ID > 1 AND post_type = 'post' AND post_date >= DATE_SUB(CURRENT_DATE(), INTERVAL $how_long DAY) ORDER BY id DESC LIMIT 0,1"); } else { $thispost = $wpdb->get_results("SELECT ID, post_title FROM $blogPostsTable WHERE post_status = 'publish' AND ID > 1 AND post_type = 'post' ORDER BY id DESC LIMIT 0,1"); } // if it is found put it to the output if($thispost) { // get permalink by ID. check wp-includes/wpmu-functions.php $thispermalink = get_blog_permalink($blog, $thispost[0]->ID); if ($titleOnly == false) { echo $begin_wrap.'<a href="' .$thispermalink.'">'.$thispost[0]->post_title.'</a> <br/> by <a href="' .$options[0]->option_value.'">' .$options[1]->option_value.'</a>'.$end_wrap; $counter++; } else { echo $begin_wrap.'<a href="'.$thispermalink .'">'.$thispost[0]->post_title.'</a>' . $end_wrap; $counter++; } } // don't go over the limit if($counter >= $how_many) { break; } } echo "</ul>"; } } class wpms_recent_posts extends WP_Widget { // The widget construct. function wpms_recent_posts() { $widget_ops = array( 'classname' => 'widget_WPMS_Recent_Posts', 'description' => __( "Display Recent Posts from all WPMS sites Multiwidget" ) ); $this->WP_Widget('recentPosts', __('WPMS Recent Posts Multiwidget'), $widget_ops); } // End function wpms_recent_posts // This code displays the widget on the screen. function widget($args, $instance) { extract($args); $options = get_option("wpms_recent_posts_widget"); if (!is_array( $options )) { $options = array( 'title' => 'Last Posts', 'number' => '10', 'days' => '-1' ); } echo $before_widget; if(!empty($instance['title'])) { echo $before_title . $instance['title'] . $after_title; } wpms_recent_posts_mu($instance['number'],$instance['days'],true,"\n<li>","</li>"); echo $after_widget; } // End function widget. // Updates the settings. function update($new_instance, $old_instance) { return $new_instance; } // End function update // The admin form. function form($instance) { echo '<div id="wpms_RecentPosts-admin-panel">'; echo '<label for="' . $this->get_field_id("title") .'">WPMS Recent Posts Title:</label>'; echo '<input type="text" class="widefat" '; echo 'name="' . $this->get_field_name("title") . '" '; echo 'id="' . $this->get_field_id("title") . '" '; if(empty($instance['title'])) { echo 'value="Recent Posts" />'; } else { echo 'value="' . $instance["title"] . '" />'; } echo '<label for="' . $this->get_field_id("number") .'">Number of posts to show:</label>'; echo '<input type="text" size="3" '; echo 'name="' . $this->get_field_name("number") . '" '; echo 'id="' . $this->get_field_id("number") . '" '; if(empty($instance['number'])) { echo 'value="10" />'; } else { echo 'value="' . $instance["number"] . '" />'; } echo '<label for="' . $this->get_field_id("days") .'">Number of days to limit:</label>'; echo '<input type="text" size="3" '; echo 'name="' . $this->get_field_name("days") . '" '; echo 'id="' . $this->get_field_id("days") . '" '; if(empty($instance['days'])) { echo 'value="-1" />'; } else { echo 'value="' . $instance["days"] . '" />'; } echo '<input type="hidden" '; echo 'name="wpms_recent_posts_submit" '; echo 'id="wpms_recent_posts_submit" '; echo 'value="1" />'; echo '</div>'; $options = get_option('wpms_recent_posts_widget'); if (!is_array( $options )) { $options = array( 'title' => 'Last Posts', 'number' => '10', 'days' => '-1' ); } if ($_POST['wpms_recent_posts_submit']) { $options['title'] = htmlspecialchars($_POST['wpms_recent_posts_title']); $options['number'] = intval($_POST['wpms_recent_posts_number']); $options['days'] = intval($_POST['wpms_recent_posts_days']); update_option("wpms_recent_posts_widget", $options); } } // end function form } // end class wpms_recent_posts // Register the widget. add_action('widgets_init', create_function('', 'return register_widget("wpms_recent_posts");')); ?>
I love this one:
https://www.ads-software.com/extend/plugins/diamond-multisite-widgets/And I use this one too:
https://www.ads-software.com/extend/plugins/wpmu-featured-blog-widget/The first had recent entries, recent comments, feeds for recent entries and shortcodes to display recent entries in the posts section rather than the sidebar.
The second can display recent entries per blog.Devilnet: what do you mean by multiple instance widget? You can have more than one of these at one time on a blog?
Copperblade: that’s right – multiple instance just means that you can add it more than once in the sidebar, rather than only being able to use it once. I just updated it so it works using the newer widgets API – pretty much all new widget do the multiple-instance thing by default.
Hope it’s helpful!
- The topic ‘[Plugin: WPMU Recent Posts Widget] Links to other widgets like this?’ is closed to new replies.