したがって、これらは未加工のバージョン (まだ最適化されていない) であり、現在のブログ (サイト) から #1 を除く他のすべてのブログ (サイト) にコピーされます。post_name が存在する場合、コンテンツがコピーされます。それ以外の場合は、新しいページと見なされて作成されます。現在ログインしているユーザーに与えられた新しいページの所有権。
大規模なインストールを処理するために変更する必要があります。これは、現時点ではオールインワンで行われているように、いくつかのページングなどがあります。
私の要件に適しており、おそらく他の状況で遊ぶことができます. 他の人に使用する場合は共有します。
$id = get_current_blog_id();
$sql = "SELECT * FROM ".$wpdb->base_prefix."blogs WHERE blog_id != %d AND blog_id > 1";
$blogs = $wpdb->get_results($wpdb->prepare($sql, $id));
foreach ($blogs as $blog):
echo $blog->path.' ('.$blog->blog_id.')<br />';
$blog_id = ($id == 1) ? '' : $id.'_';
$sql = "SELECT * FROM ".$wpdb->base_prefix.$blog_id."posts WHERE post_type='page' and post_status='publish'";
$pages = $wpdb->get_results($sql);
foreach ($pages as $page):
$sql = "SELECT ID FROM ".$wpdb->base_prefix.$blog->blog_id."_posts WHERE post_name = %s AND post_status = 'publish'";
$target = $wpdb->get_row($wpdb->prepare($sql, $page->post_name));
if ($target):
$sql = "UPDATE ".$wpdb->base_prefix.$blog->blog_id."_posts SET post_content = %s WHERE post_type='page' AND post_status = 'publish' AND post_name = %s";
$wpdb->query($wpdb->prepare($sql, $page->post_content, $page->post_name));
else:
$post_author = $current_user->ID;
$post_content = $page->post_content;
$post_title = $page->post_title;
$comment_status = 'closed';
$post_name = $page->post_name;
$post_type = 'page';
$insert = $wpdb->prepare( "( %d, %s, %s, %s, %s, %s)", $post_author, $post_content, $post_title, $comment_status, $post_name, $post_type );
$wpdb->query( "INSERT INTO ".$wpdb->base_prefix.$blog->blog_id."_posts ( post_author, post_content, post_title, comment_status, post_name, post_type ) VALUES " . $insert );
endif;
endforeach;
endforeach;