更换服务器后WordPress出现strpos(): Empty needle错误如何解决?
问题根本原因
你遇到的strpos(): Empty needle报错本质就是home_url()返回空值导致的,你的猜测完全正确:问题根源是新服务器上的WordPress站点地址配置缺失。
Duplicator迁移后出现该问题通常是三类原因导致:迁移流程中站点域名配置步骤漏填、新环境wp-config.php文件中预置了空的站点地址参数覆盖了默认配置、数据库迁移时wp_options表内的站点地址字段值丢失。
根源修复方案(无需修改业务代码)
以下方案优先级从高到低,按需选择即可:
- 后台直接配置(可正常登录WordPress后台时使用)
登录后台进入「设置」-「常规」,分别填写*WordPress地址(URL)和站点地址(URL)*为站点实际访问地址,格式为https://你的域名,保存更改后清理缓存即可生效。 - wp-config.php硬编码配置(无法登录后台时使用)
编辑站点根目录的wp-config.php文件,添加两行配置:
替换为实际站点地址后保存覆盖原文件即可,该配置优先级最高,会强制覆盖后台的设置值。define( 'WP_HOME', 'https://你的域名' ); define( 'WP_SITEURL', 'https://你的域名' ); - 直接修改数据库配置
登录站点数据库,找到wp_options表(表前缀可自定义,注意匹配实际前缀),分别修改option_name为siteurl和home的两条记录的option_value值为实际站点地址即可。
配置完成后清理站点缓存、浏览器缓存,即可消除该报错,无需修改你贴出的is_local_attachment函数代码。
内容的提问来源于stack exchange,提问作者Tadq
相关产品推荐
相关产品推荐

