Tagged: media, mediapress
Hi Support,
I’m a WordPress developer & was creating an API for creating Mediapress galleries(Multisite) which are almost developed. But was struggling to map the photos with Mediapress gallery, could you guide me to resolve such challenges?
My code works fine with a Single site but with a multisite, it is not.
Code snippet
–$attach_id = wp_insert_attachment( $attachment, $filename,$gallery_id );
require_once( ABSPATH . 'wp-admin/includes/image.php' );
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
wp_update_attachment_metadata( $attach_id, $attach_data );
mpp_update_media_meta( $attach_id, '_mpp_is_mpp_media', 1 );
mpp_update_media_meta( $attach_id, '_mpp_component_id', 1 );
mpp_import_attachment($attach_id,$gallery_id);
Let me know if any more clarification is required to describe the problem, looking forward to your valuable suggestion as early as possible.
Regards,
Karamveer SinghHi Karamveer,
Welcome to BuddyDev support forums.Please try using switch_to_blog($blog_id) and restore_current_blog() before/after your code to use the specific blog where MediaPress is active.
In case of Multisite, MediaPress is probably active on your site/blog where BuddyPress was activated. Most of the time, It is blog with id 1 but may depend if you have a a different sub site/blog as main site of the network.Regards
BrajeshHi Brajesh,
Thank you for your quick response—I really appreciate you getting back to me so soon. About your suggestion already tried same in my logic, see below the complete snippet of the function.
function imagecreateprogram(){ switch_to_blog(3); $gallery_id = 5; mpp_import_attachment('10',$gallery_id); require_once ABSPATH . 'wp-admin/includes/image.php'; $storage = mpp_local_storage(); // destination. $uploads = $storage->get_upload_dir( array( 'component' => 'sitewide', 'component_id' => 1/* $gallery->component_id */, 'gallery_id' => $gallery_id, ) ); $imagename = 'karamveer.jpg'; $image_url = $uploads['url'] . '/'.$imagename; //$image_data = file_get_contents( $image_url ); $filename = basename( $image_url ); // if destination directory does not exists, try creating it. if ( ! file_exists( $uploads['path'] ) ) { wp_mkdir_p( $uploads['path'] ); } if ( file_exists( $uploads['path'] ) ) { $file = $uploads['path'] . '/' . $filename; } else { $file = $uploads['basedir'] . '/' . $filename; } $wp_filetype = wp_check_filetype( $filename, null ); $wp_gallery_id = $gallery_id; $photoTitle = 'Test Title'; $customerID = 1; $photoDesc = 'Photo Description'; $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => $photoTitle, /* 'post_date' => $createdDate, */ 'post_parent' => $wp_gallery_id, 'post_author' => $customerID, 'post_content' => $photoDesc, 'post_status' => 'inherit', ); $attachment = sanitize_post( $attachment, 'db' ); $image_subdir_path = $uploads['subdir'] . '/' . $filename; $attach_id = wp_insert_attachment( $attachment, ltrim($image_subdir_path, '/'),$gallery_id ); require_once( ABSPATH . 'wp-admin/includes/image.php' ); $attach_data = wp_generate_attachment_metadata( $attach_id, $file ); wp_update_attachment_metadata( $attach_id, $attach_data ); mpp_update_media_meta( $attach_id, '_mpp_is_mpp_media', 1 ); mpp_update_media_meta( $attach_id, '_mpp_component_id', 1 ); mpp_update_media_meta( $attach_id, '_wp_attached_file', $filename ); mpp_import_attachment($attach_id,$gallery_id); // not working return rest_ensure_response($attach_id); }
Hi Karamveer,
You are welcome.
Thank you for sharing the snippet. I don’t think you need that much code to achieve this task.Before I assist you further, please share me the following details:-
1. Is it a normal multisite with BuddyPress network active or do you have BuddyPress in Multi Network mode(BuddyPress behaves to be available on all sites and directory/profile is available from all of the sites).
2. Or is BuddyPress just active on a single blog/site on the network?
3. On which blog BuddyPress and MediaPress are active?
4. Is MediaPress network active or just active on a single site of the network?5. Is the gallery and the media you want to add to the gallery available on same site?
6. If the answer to previous question is no, What is the source of media? Do you want to import an existing attachment to gallery or do you want to import a media from somewhere on the web to the gallery?7. or is there any chance that you have some way to upload your media and you want to add it to gallery after you have handled the upload on you own?
Please share the details and I will assist.
Regards
BrajeshHi Brajesh,
Thank you for your continued support. About your queries kindly look underneath my comments and let me know if there is any further information required.
1. Is it a normal multisite with BuddyPress network active or do you have BuddyPress in Multi Network mode(BuddyPress behaves to be available on all sites and directory/profile is available from all of the sites).
Answer: Yes our website is running on multisite with BuddyPress in Multi Network mode.Our both plugins(MediaPRess/BuddyPress) are configured from Network Admin.2. Or is BuddyPress just active on a single blog/site on the network?
Answer: No, It’s being activated by the Network admin and enabled under all sites.3. On which blog BuddyPress and MediaPress are active?
Answer: We have 2 blogs(sites) and in both buddypress/mediapress plugin is activated.4. Is MediaPress network active or just active on a single site of the network?
Answer: MediaPress is network active.5. Is the gallery and the media you want to add to the gallery available on same site?
Answer:: Yes, the gallery and the media we want to add, are available on the same site.6. If the answer to the previous question is no, What is the source of media? Do you want to import an existing attachment to gallery or do you want to import a media from somewhere on the web to the gallery?
Answer: Answer to all above question is Yes, We uploaded the media in uploads(see next reply for exact path) via FTP and with API trying to attach it to WordPress Media and Media press gallery.7. or is there any chance that you have some way to upload your media and you want to add it to gallery after you have handled the upload on you own?
Answer: Yes right, we already have media and placed there inside the site folders which we’re mapping by the API to WP. Both 2 sites’ media folders path look like this – \wp-content\uploads\sites\2 , \wp-content\uploads\sites\3Hi Karamveer,
Thank you.
The issue is MediaPress should never be activated network wide. It can only be enabled per site basis.MediaPress uses WordPress attachment which are specific to your blogs(site) and the MediaPress settings need to be updated on individual blogs.
In your use case, MediaPress may not be suitable if you need BuddyPress multi network mode. You can enable it on one of the sites if that works for you.
Regards
BrajeshHi Karamveer,
MediaPress is compatible with multisite. It does not support network activation or BuddyPress Multi Network mode.
As a comparison, consider the use case of WooCommerce on multisite, MediaPress behaves in similar way.You can activate it on individual sites but not use in network activation mode.
Regards
BrajeshHello Brajesh,
As you suggested I enabled the Mediapress on individual site basis and tried media uploading then assigning media/photos to Mediapress Gallery by using switch_to_blog(2);
it uploading the images to media but still not assigning the media to required Gallery.
do you have some reference code snippet to achieve it.
*Activities performed*-
1. Setup the fresh WP-MU
2. Created 2 subsites
3. Visited the individual single site and enabled the media press plugin
4. Executed my custom script to sync the media but still the same result. Images are saved into the media but not mapped with the Gallery. The gallery is showing empty no media attached/thumbsRegards,
Karamveer Singh- This reply was modified 1 year, 6 months ago by karamveer.
You must be logged in to reply to this topic.