主题激活时添加Option表空值失败的技术求助
解决主题激活时添加空值到Option表的问题
你的代码未生效的核心原因是钩子选择错误:switch_theme是主题切换前触发的动作,此时新主题的初始化流程尚未完成,更适合使用after_switch_theme钩子——它会在主题切换完成后执行,能确保操作时机正确。
另外,add_option函数若检测到目标选项已存在,不会重复执行添加操作。如果需要确保无论选项是否存在都设置为空值,可以结合update_option处理;若仅需首次激活主题时添加空值(后续切换回该主题不覆盖原有值),直接使用add_option即可。
修改后的代码示例
场景1:每次激活主题都将选项设为空值
function Arion_register_option() { // 检查选项是否存在,不存在则添加空值,存在则更新为空值 if (get_option('arion_site_logo') === false) { add_option('arion_site_logo', ''); } else { update_option('arion_site_logo', ''); } } add_action('after_switch_theme', 'Arion_register_option');
场景2:仅首次激活主题时添加空值
function Arion_register_option() { add_option('arion_site_logo', ''); } add_action('after_switch_theme', 'Arion_register_option');
替换原有代码后,即可在主题激活时成功将空值写入option表。
内容的提问来源于stack exchange,提问作者coppersmith
相关产品推荐
相关产品推荐

