Import/Export custom post with relationship field
Support › MB Relationships › Import/Export custom post with relationship field
- This topic has 5 replies, 4 voices, and was last updated 1 year, 3 months ago by
pixluser.
-
AuthorPosts
-
February 19, 2022 at 12:40 PM #34002
Mark
ParticipantI'm trying to bulk import/export thousands of posts in a CSV format, they have a relationship between them. I have tried using WP All Export and Ultimate CSV, they capture all the fields, but not the relationship field. May I know how we can ensure that the relationship field is captured on import/expoprt?
February 21, 2022 at 8:12 AM #34022Long Nguyen
ModeratorHi Mark,
The extension MB Relationships saves data in a custom table, please read more here https://docs.metabox.io/extensions/mb-relationships/#database
You can try to create the code to import data to the custom table, here are some tuts
https://code.tutsplus.com/tutorials/custom-database-tables-importing-data--wp-28869
https://wordpress.org/support/topic/import-to-custom-table/November 11, 2022 at 1:29 AM #39061nbadmin
ParticipantThere is still no import-export solution for repeater and relationship fields?
Sorry Guys, I can't understand why you are the only ones for whom there is an import export solution for the field types.
January 10, 2024 at 7:12 AM #44253pixluser
ParticipantHello Metabox. I think you really should add an import/export .CSV that support the relationship.
It's such a gigantic work to do by hand.
Is it possible to do that with WP Ultimate CSV Importer ?January 10, 2024 at 7:21 AM #44254pixluser
ParticipantI aked chatgpt to add that feature into wordpress. I don't know if it can works. Gotta try it now.
<?php /* Plugin Name: Metabox Relationships Export/Import Description: Export and import Metabox Relationships data in JSON format. Version: 1.0 Author: Your Name */ // Export Metabox Relationships data as JSON function export_metabox_relationships_as_json() { global $wpdb; // ... (same export code as before) ... // Output the JSON for download header('Content-disposition: attachment; filename=metabox_relationships_export.json'); header('Content-type: application/json'); echo $json_data; exit; } // Import Metabox Relationships data from JSON function import_metabox_relationships_from_json() { if (isset($_FILES['metabox_relationships_json'])) { $json_data = file_get_contents($_FILES['metabox_relationships_json']['tmp_name']); // Decode JSON data $import_data = json_decode($json_data, true); if ($import_data) { // Process and import relationships data here // ... (import code) ... // Ensure data validation and use Metabox Relationships API to import } else { // Handle JSON decoding error echo "Invalid JSON data!"; } } } // Create admin menu items for export/import function add_metabox_relationships_menu() { add_menu_page( 'Metabox Relationships Export', 'Metabox Relationships', 'manage_options', 'metabox-relationships-export', 'export_metabox_relationships_as_json' ); add_submenu_page( 'metabox-relationships-export', 'Import Metabox Relationships', 'Import', 'manage_options', 'metabox-relationships-import', 'import_metabox_relationships_page' ); } // HTML for import page function import_metabox_relationships_page() { ?> <div class="wrap"> <h1>Import Metabox Relationships</h1> <form method="post" enctype="multipart/form-data"> <input type="file" name="metabox_relationships_json"> <?php submit_button('Import Relationships'); ?> </form> </div> <?php } // Hook functions to admin menu and actions add_action('admin_menu', 'add_metabox_relationships_menu'); add_action('admin_post_import_metabox_relationships', 'import_metabox_relationships_from_json');
January 10, 2024 at 7:29 AM #44255pixluser
Participant// the export code should be this one. (can't edit post here)
// Change these table names if needed
$table_relationships = $wpdb->prefix . 'mb_relationships';
$table_relationships_items = $wpdb->prefix . 'mb_relationships_items';$relationships_data = $wpdb->get_results("
SELECT * FROM $table_relationships
JOIN $table_relationships_items ON $table_relationships.ID = $table_relationships_items.relationship_id
", ARRAY_A);// Prepare data in a suitable format for export
$export_data = array();foreach ($relationships_data as $relationship) {
$relationship_id = $relationship['relationship_id'];// Group relationships by their ID
if (!isset($export_data[$relationship_id])) {
$export_data[$relationship_id] = array(
'id' => $relationship_id,
'name' => $relationship['name'],
'type' => $relationship['type'],
'description' => $relationship['description'],
'items' => array()
);
}// Add items related to this relationship
$export_data[$relationship_id]['items'][] = array(
'id' => $relationship['item_id'],
'type' => $relationship['item_type'],
// Add other item fields as needed
);
} -
AuthorPosts
- You must be logged in to reply to this topic.