WPMU, ane paling benci yang namanya blog_id(1), klo create network pasti semua postingan tipe post bakal masuk ke dalam slug "blog". Anehnya kenapa Wordpress ini gk mau ngubah "blog" jadi channel utama (seperti aggregator) untuk semua blogs dalam WPMU kita. Jadi walaupun kta punya WPMU tapi tetap kita sakit kepala pikirkan cara untuk tampilkan recent post dari blog2 lain dalam network.
Jadi tadi pagi ane sedang main - main dengan WPMU dan 43 site dalam localhost & berusaha gabung 2 snippet yg ane temukan di Internet. Walau ane ini bodoh soal PHP tapi akhirnya jadi juga kekeke. Ini snippet untuk tampilkan semua recent post dari blog - blog dalam network. Saya cuma kasi PHPnya saja, styling dan lain2 silahkan pikirkan sendiri.
<?php $blogs = $wpdb->get_results( $wpdb->prepare("SELECT blog_id, domain, path FROM $wpdb->blogs WHERE site_id = %d AND public = '1' AND archived = '0' AND mature = '0' AND spam = '0' AND deleted = '0' ORDER BY domain ASC, path ASC", $wpdb->siteid), ARRAY_A ); foreach ( (array) $blogs as $details ) {$blog_list[ $details['blog_id'] ] = $details;} unset( $blogs ); $blogs = $blog_list; if (is_array( $blogs ) ){ echo '<ul>'; $array= array(); $array= array_slice( $blogs, 0, count( $blogs ) ); for($i=0;$i<count($array);$i++){ $blog = get_blog_details( $array[$i]['blog_id'] );?> <?php $rss = new DOMDocument(); $rss->load($blog->siteurl.'/feed/'); $feed = array(); foreach ($rss->getElementsByTagName('item') as $node) { $item = array ( 'title' => $node->getElementsByTagName('title')->item(0)->nodeValue, 'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue, 'link' => $node->getElementsByTagName('link')->item(0)->nodeValue, 'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue, ); array_push($feed, $item); } $limit = 5; for($x=0;$x<$limit;$x++) { $title = str_replace(' & ', ' & ', $feed[$x]['title']); $link = $feed[$x]['link']; $description = $feed[$x]['desc']; $date = date('l F d, Y', strtotime($feed[$x]['date'])); echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />'; echo '<small><em>Posted on '.$date.'</em></small></p>'; echo '<p>'.$description.'</p>'; } ?> <?php } }?>