Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Plugin Name: WordPress MU Recent Posts
- Plugin URI: http://atypicalhomeschool.net/wordpress-plugins/
- Description: Retrieves a list of the most recent posts in a WordPress MU installation. Based on (Andrea - fill this in)
- Author: Ron Rennick
- Author URI: http://atypicalhomeschool.net/
- */
- /*
- Version: 0.31
- Update Author: Sven Laqua
- Update Author URI: http://www.sl-works.de/
- */
- /*
- Version: 0.32
- Update Author: MagicHour
- Update Author URI: http://wiki.thisblueroom.net/wiki/Wordpress_MU_sitewide_recent_posts_plugin
- */
- /*
- Parameter explanations
- $how_many: how many recent posts are being displayed
- $how_long: time frame to choose recent posts from (in days)
- $titleOnly: true (only title of post is displayed) OR false (title of post and name of blog are displayed)
- $begin_wrap: customise the start html code to adapt to different themes
- $end_wrap: customise the end html code to adapt to different themes
- Sample call: ah_recent_posts_mu(5, 30, true, '<li>', '</li>'); >> 5 most recent entries over the past 30 days, displaying titles only
- */
- function ah_recent_posts_mu($how_many, $how_long, $titleOnly, $begin_wrap, $end_wrap) {
- global $wpdb;
- $counter = 0;
- // get a list of blogs in order of most recent update. show only public and nonarchived/spam/mature/deleted
- $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");
- if ($blogs) {
- foreach ($blogs as $blog) {
- // we need _posts and _options tables for this to work
- $blogOptionsTable = "wp_".$blog."_options";
- $blogPostsTable = "wp_".$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
- $thispost = $wpdb->get_results("SELECT ID, post_title
- FROM $blogPostsTable WHERE post_status = 'publish'
- AND post_type = 'post' AND post_date >= DATE_SUB(CURRENT_DATE(), INTERVAL $how_long DAY)
- 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;
- }
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement