移动站点时Wordpress数据库的更改
将Wordpress安装从一个地方移动到另一个地方时,您需要注意许多事项。如果正确创建了模板,则将使用对bloginfo('home')的调用,而不是使用静态链接,但是您将需要更新这些链接以使Wordpress安装正常工作。
文件放置到位后,数据库连接详细信息已被编辑并创建了数据库,数据库中需要进行许多更改以使您的Wordpress安装工作。
最重要的更改在选项表中。此表中有两个对您的URL的引用,必须进行更改才能阻止Wordpress重定向回到您的旧站点。这必须通过数据库访问来完成,因为当您尝试登录stie时,Wordpress将重定向您。
UPDATE wp_options SET option_value = 'http://www.example.com' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'http://www.example.com' WHERE option_name = 'home';
帖子表在guid列中包含一个确定的引用,而在帖子内容表中包含一个可能的引用。这些项目不太重要,但是可以。这里是更新这些项目所需的SQL命令。
UPDATE wp_posts SET guid = REPLACE(guid, 'http://www.example2.com', 'http://www.example.com'); UPDATE wp_posts SET post_content = REPLACE(post_content , 'http://www.example2.com', 'http://www.example.com');
帖子元数据中可能存在静态链接的奇怪例子,在这种情况下,您可能还希望在wp_postmeta表上运行以下内容。
UPDATEwp_postmetaSETmeta_value=REPLACE(meta_value,'http://www.example2.com','http://www.example.com');
如果您的注释表中有对旧站点的引用,则可能还需要更改这些引用。
UPDATE wp_comments SET comment_content = REPLACE(comment_content , 'http://www.example2.com', 'http://www.example.com'); UPDATE wp_comments SET comment_author_url = REPLACE(comment_author_url , 'http://www.example2.com', 'http://www.example.com');
我将所有这些语句放在一个块中,每个语句都使用$wpdb对象执行。
$new_site = 'http://www.example.com'; $old_site = 'http://www.example2.com'; //更新选项 $wpdb->query("UPDATE " . $wpdb->prefix . "options SET option_value = '" . $new_site . "' WHERE option_name = 'siteurl';"); $wpdb->query("UPDATE " . $wpdb->prefix . "options SET option_value = '" . $new_site . "' WHERE option_name = 'home';"); //更新帖子 $wpdb->query("UPDATE " . $wpdb->prefix . "posts SET guid = REPLACE(guid, '" . $old_site . "', '" . $new_site . "');"); $wpdb->query("UPDATE " . $wpdb->prefix . "posts SET post_content = REPLACE(post_content , '" . $old_site . "', '" . $new_site . "');"); //更新postmeta $wpdb->query("UPDATE " . $wpdb->prefix . "postmeta SET meta_value = REPLACE(meta_value , '" . $old_site . "', '" . $new_site . "');"); //更新评论 $wpdb->query("UPDATE " . $wpdb->prefix . "comments SET comment_content = REPLACE(comment_content , '" . $old_site . "', '" . $new_site . "');"); $wpdb->query("UPDATE " . $wpdb->prefix . "comments SET comment_author_url = REPLACE(comment_author_url , '" . $old_site . "', '" . $new_site . "');");
将此添加到您的Wordpress安装中,以便在加载页面时运行。这可能functions.php在当前主题的文件内。或者,您可能希望将其作为单独的文件运行,只需在脚本顶部包含wp-load.php即可引导Wordpress。
您可能会注意到,此语句集合中缺少的一件事是对特定于插件的语句的任何引用。插件增加了难度,因为有些将其数据存储在自定义表中,而另一些将其数据存储为选项表中的序列化数组。因此,您需要将它们添加到上面的脚本中,以更改它们可能包含的所有引用。我发现有用的一件事是简单地停用然后重新激活插件,这将解决大多数问题。