wordpress 替换主题、插件等保存的基本编码字符串中的本地主机 URL

for*_*imb 7 wordpress

要将 wordpress 站点从本地主机托管到实时服务器,需要将所有本地主机 url 更改为实时域 url。Done 和 site 也可以正常加载,但没有任何媒体项目显示,因为它们位于基本编码字符串中。

但是如何替换主题和其他插件保存的基本编码字符串中的 url?

在我的情况下,我使用 BeTheme 和视觉作曲家,其中包含实际的页面内容和保存在数据库中编码的基础。它们包含许多媒体项目的硬编码完整网址。

我将 db dump 放入一个 .sql 文件中,找到并将所有 localhost 替换为 live 域 url ......但这就是我卡住的地方!

fra*_*ode 5

我遇到了同样的问题,并找到了一种方法来做到这一点。我的例子是 wp_postmeta 表和松饼的一些主题

要求:

  • 一些搜索替换插件(例如https://wordpress.org/plugins/search-and-replace/
  • 具有 from_base64() 函数的 MySQL 版本(5.6.1 及更高版本)
  • (可能是可选的)一些 meta_key 来标识要解码的行,因为为巨大的表解码 base64 会让数据库服务器伤心。

脚步:

  1. 备份你的数据库(!!!)

  2. 创建一个与 wp_postmeta 布局相同的表:

    CREATE TABLE wp_base64_dec LIKE wp_postmeta
    
    Run Code Online (Sandbox Code Playgroud)
  3. 插入从 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%')) ;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用 wp 中的搜索替换插件将表中的“domain.net”替换为“domain.com” wp_base64_dec

  5. 替换原始表中更改的列:

    REPLACE wp_postmeta
    SELECT 
      `meta_id`,`post_id`,`meta_key`,
       TO_BASE64(`meta_value`) as `meta_value`
    FROM `wp_base64_dec`
    
    Run Code Online (Sandbox Code Playgroud)


Chi*_*odi -2

如果您从 phpmyadmin 导出数据库,那么您想要获得序列化数据。您必须使用插件才能导出。

wp migrate db 是一个很棒的插件。

https://wordpress.org/plugins/wp-migrate-db/