Integrating Existing External Database with Custom Post Types
-
Scenario:I have a (large) table of information — lets even call it a “custom post type” with titles, post body, and lots of custom meta — that I want to integrate into WordPress (or *gasp* some other CMS) to allow for all the fun tagging, categorizing, commenting, perhaps forum-izing and serving of information.
The trick is, I also have some custom php programs that interact with the database as is. Also, I need to be able to access the database via external programs. (And, from an aesthetics/zen viewpoint I want my data all in one row.)
Possible routes:
1) “Simplest” Dump the database to a csv, and import it into a custom type using word-presses custom post meta functions and re-write my custom functions to pull from the WPDB structure. Let WP be king.THIS IS NOT GOOD. A) clumping all the meta into key,value wp_postmeta table structure will make indexing inefficient and slow down retrieval of information. B) as I said above, I need to be able to access the database via other programs – so would like to leave it as-is.
2) Keep two databases in sync: a) Create a full custom meta system that mirrors my custom table. b) Have my custom table update the wordpress wp_posts and wp_post_metadata table (via trigger) and vice-versa (via hooks) whenever a record is added or updated. Thus wordpress can do its thing, and my programs can do their thing, but the info is the same.
DOWNSIDE: Having two copies of the same data – even carefully synced – is asking for trouble. Especially in the unlikely case of data being edited in two place at once…
3) Totally hack WP-Core to modify all the custom metadata functions to redirect to my custom table… which would, of course, result in infinite update headaches… If this is what is required – I would probably be better off learning Drupal and using that:
4) Use another CMS…
As you see, I’m brainstorming possible solutions… Any thoughts?
- The topic ‘Integrating Existing External Database with Custom Post Types’ is closed to new replies.