一部のネットワークブログの新着記事が取得が出来ない
-
初めて書き込みさせていただきます。
マルチサイトで作成しているのですが、
新規に追加したネットワークブログの新着記事が古いものから3件しか取得できません。原因がわからない為、わかる方がおりましたら原因として考えられることを
教えていただけると助かります。宜しくお願い申し上げます。
使用しているコードは以下の通りです。
★functions.php
function get_blog_all_entry($denyBlogs) { global $wpdb; //現在のブログIDをメモ $mysiteid = $GLOBALS['blog_id']; //マルチサイトの情報を取得 $blogLists = $wpdb-> get_results( "SELECT blog_id FROM wp_blogs ORDER BY blog_id" ); foreach ($blogLists as $blog) { $blog_id = $blog->blog_id; if (in_array($blog_id, $denyBlogs)) continue; //指定ブログはスキップ //ブログ切替 switch_to_blog($blog->blog_id); //ブログのサイト名とURLを取得 $siteurl = get_site_url(); $blog_name = get_option('blogname'); $my_posts = get_posts("showposts=3&post_status=publish"); //公開記事のみ if (have_posts()) { //タイムスタンプをキーに記事情報を格納 foreach ($my_posts as $post) { setup_postdata($post); $get_post_time = $post->post_date; //同時更新への対応(タイムスタンプの末尾にブログIDとPostIDを付加) $unix_time = strtotime($get_post_time) . ':' . $blog_id . '-' . $post->ID; $entryAry[$unix_time]['quid'] = $post->guid; $entryAry[$unix_time]['ID'] = $post->ID; $entryAry[$unix_time]['title'] = $post->post_title; $entryAry[$unix_time]['date'] = date('Y/m/d', strtotime($post->post_date)); //ブログのサイト名とURLを格納 $entryAry[$unix_time]['siteurl'] = $siteurl; $entryAry[$unix_time]['blogname'] = $blog_name; $entryAry[$unix_time]['blog_id'] = $blog_id; //カテゴリ情報保存 $entryAry[$unix_time]['categories'] = get_the_category($post->ID); //カテゴリリンクはマルチblog内でしか取得できないので、このループ上で生成 $categories_link = ''; $categories = get_categories(); foreach ($categories as $category) { $categories_link .= ' <li> <a class="TextCtg" href="' . get_category_link($category->cat_ID) . '">' . $category->cat_name . '</a> </li> '; } $entryAry[$unix_time]['categories']['link'] = $categories_link; } } } //ブログ切替終了 restore_current_blog(); switch_to_blog($mysiteid); //ブログを強制的に呼び出しブログに切り替える if (count($entryAry) > 0) { krsort($entryAry); //全記事をタイムスタンプ順に並び替え return $entryAry; } else { return false; } }
★テンプレコード
<div class="news_box"> <ul class="scrollbar"> <?php $network_posts = get_recentposts_from_network( 'perblog=1' ); if( $network_posts ) : foreach( (array) $network_posts as $key => $post ) { switch_to_blog( $post->blog_id );//取得するブログIDの配列$post->blog_id setup_postdata( $post ); ?> <li> <dl> <dt><?php the_time('Y.m.d');?></dt> <dd> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br /> <p class="saishin"><?php echo get_bloginfo( 'name' ); ?></p></dd> </dl> </li> <?php restore_current_blog(); } wp_reset_query(); endif; ?> </ul><!--//--> <div class="clearfix"> </div> </div>
- トピック「一部のネットワークブログの新着記事が取得が出来ない」には新たに返信することはできません。