对于从localhost托管wordpress站点到live server,需要将所有localhost url更改为live domain urls。完成和网站也加载正常,但没有任何媒体项目显示,因为它们在基本编码的字符串中。
但是如何替换主题和其他插件保存的基本编码字符串中的网址?
在我的情况下,我正在使用BeTheme和视觉作曲家,其中包含实际页面内容和在db中编码的已保存基础。 它们包含许多媒体项目的硬编码完整网址。
我在.sql文件中使用db转储并查找并将所有localhost替换为live domain url ...但这是我卡住的地方!
答案 0 :(得分:3)
我遇到了同样的问题并找到了一种方法。 我的例子是wp_postmeta表和Muffin的一些主题
要求:
步骤:
备份您的数据库(!!!)
创建一个与wp_postmeta相同布局的表:
CREATE TABLE wp_base64_dec LIKE wp_postmeta
从wp-postmeta
中插入新表base64_decoded值INSERT INTO wp_base64_dec(`meta_id`, `post_id`,`meta_key`,`meta_value`)
SELECT `wp_postmeta`.`meta_id` AS `meta_id`,
`wp_postmeta`.`post_id` AS `post_id`,
`wp_postmeta`.`meta_key` AS `meta_key`,
FROM_BASE64(`wp_postmeta`.`meta_value`) AS `meta_value`
FROM `wp_postmeta` WHERE
((`wp_postmeta`.`meta_key` = 'mfn-page-items') AND
(FROM_BASE64(`wp_postmeta`.`meta_value`) LIKE '%domain.net%')) ;
在wp中使用search-replace插件将“domain.net”替换为wp_base64_dec
表中的“domain.com”。
替换原始表中的更改列:
REPLACE wp_postmeta
SELECT
`meta_id`,`post_id`,`meta_key`,
TO_BASE64(`meta_value`) as `meta_value`
FROM `wp_base64_dec`
答案 1 :(得分:1)
简短的回答是:你不能。 Visual Composer试图提供帮助,base64对数据库中的URL进行编码。搜索和替换(包括wp-cli' s版本)并不适用于这些。这是一个巨大的限制,WPBakery意识到了这一点 - 但还没有提供解决方案。
答案 2 :(得分:0)
由于某种原因,在应用@frater_sourcecode答案后,我出现了未序列化的错误,可能是因为一旦执行URL替换,指定的字符串长度就不匹配。
有一个官方的Muffin Builder URL替换工具。
https://muffingroup.com/plugins/mfn-migrate-cb.zip
这是一个WordPress插件。
我不确定为什么在任何地方都没有提到它,但我在Reddit上找到了它。
答案 3 :(得分:-1)
如果从phpmyadmin导出数据库,则需要获取序列化数据。 你必须使用插件才能导出。
wp migrate db对你来说是一个很棒的插件。