我正在开发一个涉及将WordPress安装从A点迁移到B点的项目。它应该相当简单,但手动或基于插件的传输都不起作用。解释:
A点是'demo.com'的相当标准的安装,我正在尝试将其迁移到子域(B点),比如'c.example.com'。当然,我可以很好地迁移代码,插件,主题等,但是当我带来数据库时,一切都变得混乱(我已经对站点URL /主页URL /数据库中的一些永久链接结构进行了更新)。 / p>
<head>
标记内的代码片段显示了一些有趣的信息:
<link rel="stylesheet" id="parent-style-css" href="http://c.#wp-content/themes/Example_theme/style.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="style-css-css" href="http://c.#wp-content/themes/Example_theme/style.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="layout-css" href="http://c.#wp-content/themes/Example_theme/css/layout.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="main-css" href="http://c.#wp-content/themes/Example_theme/css/main.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="shortcodes-css" href="http://c.#wp-content/themes/Example_theme/css/shortcodes.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="mediaelement-css" href="http://c.#wp-includes/js/mediaelement/mediaelementplayer.min.css?ver=2.18.1" type="text/css" media="all">
<link rel="stylesheet" id="prettyPhoto-css" href="http://c.#wp-content/themes/Example_theme/css/prettyPhoto.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="responsive-css" href="http://c.#wp-content/themes/Example_theme/css/responsive.css?ver=4.4.2" type="text/css" media="all">
<link rel="stylesheet" id="instag-slider-css" href="http://c.#wp-content/plugins/instagram-slider-widget/assets/css/instag-slider.css?ver=1.2.1" type="text/css"
仔细观察,您可以看到href / path不包含'example.com'域名,而是替换为“#”。
http://c.#wp-content/themes/Example_theme/css/responsive.css?ver=4.4.2
进一步说明,我更新了wp-config文件以定义WP_HOME和WP_SITE URL,这没有任何效果。 .htaccess也针对子域进行了更正(另外没有效果),它显示为:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /c/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . //index.php [L]
</IfModule>
# END WordPress
这个原因似乎是数据库中的某处,但是某个地方可能存在一个控制它的文件。
欢迎任何帮助,非常感谢。
再次感谢您抽出我的时间。
答案 0 :(得分:0)
首先,从头开始尝试。清理所有子域文件&amp;数据库。然后,将所有example.com文件复制到子域。之后,导出所有SQL数据库(与wp安装相关)&amp;将其导入子域的数据库。
之后编辑wp-config.php&amp;将相关信息放在这些行中:
define('DB_NAME', 'your_db_name');
/** MySQL database username */
define('DB_USER', 'your_subdomains_db_user');
/** MySQL database password */
define('DB_PASSWORD', 'your_subdomains_db_pass');
/** MySQL hostname */
define('DB_HOST', 'localhost');
...
$table_prefix = 'your_subdomain_db_table_prefix';
在该操作之后使用此脚本https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
您需要做的就是将其复制到您的子域中,访问它的主文件&amp;使用它将“example.com”的所有数据库条目替换为“c.example.com”。
这就是全部,之后您应该在子域中拥有example.com的全功能WP副本。
此外,您可以阅读代码以获取更多信息https://codex.wordpress.org/Moving_WordPress