g0dlike
Forum Replies Created
Viewing 1 replies (of 1 total)
-
Forum: Networking WordPress
In reply to: Aggregating Recent Posts to Parent Site in Multisite InstallLet me contribute with some code to solve this problem without any plugins. ??
Put this into latest_posts.php and, in functions.php in your theme folder add on top require(‘latest_posts.php’);Hope this helps! ??
<?php /* Parameters ========== $how_many (integer): how many recent posts are being displayed. $how_long_days (integer): time frame to choose recent posts from (in days). $how_many_words (integer): how many post's teaser are being displayed. Count by word. Default value are 50 words. $remove_html (boolean): set true to remove any html tag within the post. $sort_by (string - post_date/post_modified): You can short the lattest post by positing date (post_date) or posting update (post_modified). Return ====== ID post_url post_title post_content author_url author_name post_date post_time comment_count */ function wpmu_latest_post($how_many = 10, $how_long_days = 30, $how_many_words = 50, $more_text = "[...]", $remove_html = true, $sort_by = 'post_date') { global $wpdb; //first, gat all blog id $query = "SELECT blog_id FROM $wpdb->blogs WHERE blog_id !='1'"; $blogs = $wpdb->get_col($query); if ($blogs) { //we use blog id to loop post query foreach ($blogs as $blog) { $blogPostsTable = 'wp_'.$blog.'_posts'; $db_query = "SELECT $blogPostsTable.ID, $blogPostsTable.post_author, $blogPostsTable.post_title, $blogPostsTable.guid, $blogPostsTable.post_date, $blogPostsTable.post_content, $blogPostsTable.post_modified, $blogPostsTable.comment_count FROM $blogPostsTable WHERE $blogPostsTable.post_status = 'publish' AND $blogPostsTable.post_date >= DATE_SUB(CURRENT_DATE(), INTERVAL $how_long_days DAY) AND $blogPostsTable.post_type = 'post'"; $thispos = $wpdb->get_results($db_query); foreach($thispos as $thispost) { if($sort_by == 'post_date') { $order = $thispost->post_date; } else{ $order = $thispost->post_modified; } $post_dates[] = $order; $post_guids[$order] = $thispost->guid; $blog_IDs[$order] = $blog; $post_IDs[$order] = $thispost->ID; $post_titles[$order] = $thispost->post_title; $post_authors[$order] = $thispost->post_author; $post_contents[$order] = $thispost->post_content; $comments[$order] = $thispost->comment_count; } } rsort($post_dates); $union_results = array_unique($post_dates); $ResultArray = array_slice($union_results, 0, $how_many); foreach ($ResultArray as $date) { $ID = $post_IDs[$date]; $id_author = $post_authors[$date]; $post_url = get_blog_permalink($blog_IDs[$date], $ID);/*$post_guids[$date];*/ $post_title = $post_titles[$date]; $post_content = $post_contents[$date]; $post_date = mysql2date(get_option('date_format'), $date); $post_time = mysql2date(get_option('time_format'), $date); $total_comment = $comments[$date]; $user_info = get_userdata($id_author); $author_blog_url = get_blogaddress_by_id($user_info->primary_blog); $author_url = $user_info->user_url; $author_email = $user_info->user_email; if($user_info->first_name) { $author_name = $user_info->first_name.' '.$user_info->last_name; } else{ $author_name = $user_info->nickname; } if($remove_html) { $post_content = wpmu_cleanup_post($post_content); } $results = array(); $results['ID'] = $ID; $results['post_url'] = $post_url; $results['post_title'] = $post_title; $results['post_content'] = wpmu_cut_article_by_words($post_content, $how_many_words); if ($results['post_content'] != $post_content) $results['post_content'] .= sprintf(' ?<a href="%s">%s</a>', $post_url, $more_text); $results['author_blog_url'] = $author_blog_url; $results['author_url'] = $author_url; $results['author_email'] = $author_email; $results['author_name'] = $author_name; $results['post_date'] = $post_date; $results['post_time'] = $post_time; $results['comment_count'] = $total_comment; $returns[] = $results; } $latest_posts = wpmu_bind_array_to_object($returns); return $latest_posts; } } function wpmu_bind_array_to_object($array) { $return = new stdClass(); foreach ($array as $k => $v) { if (is_array($v)) { $return->$k = wpmu_bind_array_to_object($v); } else { $return->$k = $v; } } return $return; } function wpmu_cut_article_by_words($original_text, $how_many) { $word_cut = strtok($original_text," "); $return = ''; for ($i=1;$i<=$how_many;$i++) { $return .= $word_cut; $return .= (" "); $word_cut = strtok(" "); } $return .= ''; return $return; } function wpmu_cleanup_post($source) { $replace_all_html = strip_tags($source); $bbc_tag = array('/\[caption(.*?)]\[\/caption\]/is'); $result = preg_replace($bbc_tag, '', $replace_all_html); return $result; } ?>
Viewing 1 replies (of 1 total)