我已经找出了一个致命错误的来源,当一个全新的网站在安装和激活我正在使用的插件后预览时,就会发生这个错误。
问题似乎是未创建选项表中的“category\\u children”项。
有趣的是,似乎有两个操作触发WP来创建category\\u children选项。它们是:(1)激活包含创建类别代码的主题;(2)只需访问类别管理器。
如果我在激活插件后执行上述任一操作,将创建category\\u children选项(可能是由于在主题激活或edit-tags.php加载中进行了检查),错误就会消失。
以下是我在插件中用于创建类别的代码(仅在插件激活时执行):
if(!get_cat_ID(\'nofollow\')){wp_create_category(\'nofollow\',1);}
if(!get_cat_ID(\'noindex\')){wp_create_category(\'noindex\',1);}
我错过了什么?我是否需要显式调用一个方法,让WordPress为这些项目生成category\\u子选项数组?
更新:感谢scribu在下面提供的关于此错误原因的帮助,我发现此错误的部分修复方法是在wp\\u create\\u category()调用完成后放置此行:
clean_term_cache(\'\',\'category\');
然而,当在创建类别的同一插件中调用时,这不起作用。我必须把它放在一个独立的插件中,该插件与创建我的类别的插件分开激活。