Shared Content but “Updatable” Through the Main Site

You can update the sub sites when the main site is updated. Assuming your post IDs for the duplicated content remain the same as the same post in the main site you can write a plugin which runs only on the main site and with every save updates the sub sites

add_action('save_post','wase87206_broadcast');

function wase87206_broadcast($post_id) {
  $mainurl = get_option('siteurl');
  $post = get_post($ost_id);
  $blogs = get ids of all valid sub sites
  foreach ($blogs as $blogid) {
    switch_to_blog($blogid);
    $siteurl = get_option('siteurl');
    $post->post_content = str_replace($mainurl,$siteurl,$post->post_content); // fix links
    wp_update_post($post);
  }
  switch_to_blog(1); // set context back to main site
}

NOTE: this is only a skeleton for the code, as was commented below you might not want to duplicate revisions, auto saves or some specific content that should be displayed only on the main site. Another thing omitted here is handling of post deletion.

You will need the same type of code to sync categories and tags and meta data. to keep images synced the easiest way is to have a symbolic link from the upload directory of the sub sites to the upload directory of the main site.

You need to look into the performance of this type of code so it will not run into the php time limit, into memory limits, or just annoying wait until the save is completed, so you might need to recode it to use scheduled events which update only some of the blogs in one go and fire another event to continue updating the others.

Leave a Comment