修改默认WordPress主题后,文章、页面、产品预览按钮异常
我之前也碰到过几乎一模一样的情况——把TwentySixteen重命名自定义后,预览功能直接罢工,改了函数名、钩子名还是没搞定,后来才发现是漏了几个关键步骤。帮你梳理一下容易忽略的细节:
补全
style.css头部的所有必要字段更新
你改了主题名,但大概率漏了其他核心字段:- 移除
Template:字段(这个是子主题用来关联父主题的,直接修改父主题的话必须删掉,否则WordPress会认为这是TwentySixteen的子主题,导致资源加载混乱) - 把
Text Domain:改成customtheme,并且全局替换主题所有文件里翻译函数(比如__()、_e())的文本域参数,从twentysixteen换成customtheme——文本域不匹配会导致后台很多功能调用异常,包括预览按钮。
- 移除
全局替换主题文件中的旧主题标识
别只改函数名和钩子名,要搜索整个主题目录下的twentysixteen字符串,把所有硬编码的地方替换成customtheme,比如:// 旧的样式/脚本注册 wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() ); // 要改成 wp_enqueue_style( 'customtheme-style', get_stylesheet_uri() );还有自定义izer设置ID、菜单位置标识、侧边栏注册里的命名前缀,这些地方如果残留旧主题名,都会导致后台功能逻辑出错。
更新数据库中的主题激活记录
WordPress会在wp_options表中存储当前激活主题的template和stylesheet字段值,你直接改文件夹名后,数据库里还是旧的twentysixteen,会导致识别异常。最简单的修复方式:先切换到另一个默认主题(比如TwentyTwentyFour),再切回你的customtheme,让WordPress自动更新数据库记录;也可以直接手动修改这两个字段的值为customtheme。清理所有缓存
缓存是最容易被忽略的点:WordPress缓存插件(如果有)、服务器缓存、浏览器缓存都要清一遍——旧的主题JS/CSS资源缓存会导致预览功能调用错误的脚本,直接失效。检查翻译文件命名(如果有)
如果你用了主题翻译,要把.pot/.po/.mo文件的前缀从twentysixteen改成customtheme,比如customtheme-zh_CN.po,否则翻译加载失败也会间接影响后台交互功能。
按这些步骤逐一排查,应该就能解决预览按钮的问题了——我当时就是漏了数据库更新和文本域的全局替换,折腾了好半天。
内容的提问来源于stack exchange,提问作者amitwalia23

