I’m using a plugin for WordPress called NGG Gallery to deal with images.
I don’t want to use NGG Gallery anymore and I’d like to track down the NGG code in my MySQL database and replace it with straight-forward HTML. I’ve been trying to think how to do this in stored procedures and some fancy search-and-replace method, but I’m getting muddled.
The NGG code to display an image is:
[singlepic id=289 w=130 h=130 float=center]
This code lives among my posts, which are all contained in the wp_posts table.
The id from the NGG code is located in the wp_ngg_pictures table which also holds the filename (e.g., unhappycat.jpg) and the alttext (e.g., “confused cat”). By using the id it’s possible to lookup the path for the image from the wp_ngg_gallery table (e.g., /wp-content/gallery/picsofthecat). I can’t find any table that has the width and height stored, so I’d have to take these values from the NGG code in the post (the w and h).
Once I store all these values (filename, alttext, path and the width and height) in variables I can construct HTML with them, like so:
<a href="http://myserver`/path/filename>`"><img class="aligncenter" title="`alttext`" src=""http://myserver`/path/filename>`" alt=`alttext`" width="`width`" height="`height`" /></a>
I’ve penned a basic algorithm to do this, but sadly I lack the SQL know-how to implement it.
I thought of using a stored procedure so I could loop through all my posts, grab bits that I wanted from various select statements and store them in variables, and create the HTML at the end, but I got quite stuck on how to actually grab parts of text from a row in SQL and update them.
I have copied my entire live database into a local MAMP install.
I’m sure this problem is very, very simple, but it has me totally flummoxed!
If you’re not comfortable with the advanced SQL, why don’t you just do it in PHP? Run through the posts table, use basic string manipulation to grab the NGG code, query the gallery table, write the HTML and update the posts table again. The fact that it’s inefficient doesn’t matter since you’re just doing it once.