wordpress mu主站调用分站数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | <?php /* *多站点函数方法 * *$showpost 每个子站点显示的最新文章数量 * *使用方法 lei_multsite_recent_post(1) >> 每个子站点显示一篇最新文章 */ function lei_multsite_recent_post($showpost) { global $wpdb, $post, $table_prefix; //首先将所有的子站点ID号显示出来 $most_post = $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"); foreach ($most_post as $key => $v) { if($v !=1 ) //除主站点ID { $b_id[$key] = $v; } } //echo '<pre>'; //print_r($b_id); //echo '</pre>'; $newid = array_flip($b_id); //php数组函数对换键值 $new_post_id[] = array_rand($newid,1); //echo '====='; foreach ( $new_post_id as $k => $vol ) { $blogPostsTable = $wpdb->base_prefix.$vol."_posts"; $recent_post = $wpdb->get_results("SELECT * from $blogPostsTable where post_status = 'publish' and post_type = 'post' ORDER BY post_date desc LIMIT 0,$showpost"); foreach ($recent_post as $ks => $vs) { $thispermalink = get_blog_permalink($vol, $vs->ID); $count1 += 1; echo '<li><a href="'.$thispermalink.'">'.$vs->post_title.'</a></li>'; } } } /* 参数说明 $how_many: 要显示的多少篇最新文章 $how_long: 显示时间区间0为禁止该功能 $titleOnly:如果是true(只显示文章标题)或false(显示文章标题和站点名称) $begin_wrap: 自定义HTML标签,如:<li> $end_wrap: 自定义HTML标签,如:</li> 使用方法: wpmu_recent_posts_mu(5, 30, true, '<li>', '</li>'); >> 在过去的30天显示最新的5篇文章, 并且只显示文章标题。 */ function wpmu_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; //首先通过判断是否显示时间区间来分别使用不同的SQl语句 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"); } //如果存在多站点ID if ($blogs) { echo "<ul>"; foreach ($blogs as $blog) { // 下面是需要使用的数据表 $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"); // 为最新文章获取标题和ID号 //echo '<pre>'; //print_r($options); //echo '</pre>'; if ($how_long > 0) { $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"); } else { $thispost = $wpdb->get_results("SELECT ID, post_title FROM $blogPostsTable WHERE post_status = 'publish' AND post_type = 'post' ORDER BY id DESC LIMIT 0,1"); } //echo '<pre>'; //print_r($thispost); //echo '</pre>'; // 如果存在将输入内容 if($thispost) { // 获取子站点文章链接 $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++; } } // 对文章数量进行判断。 if($counter >= $how_many) { break; } } echo "</ul>"; } } ?> |
1 2 3 4 5 6 7 | <?php echo 'two'; lei_multsite_recent_post(3); echo '<br />first'; wpmu_recent_posts_mu(10, 30, true, '<li>', '</li>'); ?> |
2、而不懂编程的朋友们会想到使用插件来完成,虽然有时候能满足我们的要求,但毕竟使用插件有局限性,并不是每一款插件都适合(插件里面的代码也都是用SQL语句来完成)。比如有这么几款插件:Multisite Latest Posts Widget(显示多站点最新文章) 和 Multisite Featured Blog (显示多站点特色博客)和 WPMU Recent Posts Widget(显示多站点最近文章)
来源:邦林织梦(微信/QQ号:909912499),欢迎分享本文,转载请保留出处!部分内容来自网络,如有侵权请联系删除处理!
相关信息
本站提供代码修改,dedecms,WordPress仿站二次开发 / PHP网站建设以及SEO优化等网络营销推广等服务。
如有需要请加QQ: 909912499