您所有的问题都可以通过一些MySQL查询来解决。
关于第#1点:如果您使用mod\\u rewrite,那么我建议在帖子中的图像使用绝对URL,如果您在其他页面上显示完整的帖子内容(包括其图像),就像您建议的那样。
您可以按如下方式执行MySQL搜索/替换:
UPDATE wp_posts SET post_content = replace(post_content, \'old string\', \'new string\');
因此,例如,如果您的所有图像都位于wp content/uploads文件夹(WordPress通常将媒体放在该文件夹中),那么您的搜索/替换可能类似于:
UPDATE wp_posts SET post_content = replace(post_content, \'src="uploads/\', \'src="http://www.example.com/uploads/\');
关于第2点:
您需要从wp\\u posts表中获取图像的ID,以便将其添加到wp\\u postsmeta表中。
假设您在wp\\u postsmeta中有一些post\\u id 1的元数据。其中之一是“特色图片”,因此该行类似于:
post_id = 1;
meta_key = \'featured_image\';
meta_value = \'uploads/2012/12/someimage.jpg\';
要获取该图像的ID,请执行以下操作:
SELECT ID FROM wp_posts WHERE guid LIKE \'%uploads/2012/12/someimage.jpg\';
然后,您可以将以下数据插入到wp\\U postsmeta中:
INSERT INTO wp_postsmeta (post_id, meta_key, meta_value) VALUES (1, \'_thumbnail_id\', ID-OF-IMAGE);
因此,要将这一切结合起来,请使用一个简单的php脚本,如下所示:
$posts = $wpdb->get_results("SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key=\'featured_image\'", ARRAY_N);
if ($posts) {
while ($posts as $post) {
$image = $wpdb->get_row("SELECT ID FROM wp_posts WHERE guid LIKE \'%" . $post[1] . "%\'", ARRAY_N);
if ($image_id) {
$wpdb->query("INSERT INTO wp_postsmeta (post_id, meta_key, meta_value)
VALUES ($post[0], \'_thumbnail_id\', \'" . $image[0] . "\')");
}
}
}
希望所有这些都能给你一些指导和帮助。我写得很笼统,所以请记住在做任何更改之前备份数据库!
祝你好运