$ wp_rewrite-> flush_rules()不起作用

时间:2012-11-08 21:34:52

标签: php wordpress wordpress-plugin rewrite hook

我正在构建一个Wordpress插件,用于设置自定义帖子类型,而且这一切似乎都运行良好且花花公子。但是,我有一个激活挂钩应该(理论上至少)设置我的永久链接并刷新我的重写规则,但它不起作用:

register_activation_hook( __FILE__, 'foodsafety_activate' );

function foodsafety_activate() {
  global $wp_rewrite;
  $wp_rewrite->add_rewrite_tag("%inspection%", '([^/]+)', "inspection=");
  $wp_rewrite->add_permastruct('inspection', $inspection_structure, false);    
  $wp_rewrite->flush_rules();
}

如果我进入Settings > Permalinks并点击“保存更改”,规则会被刷新,永久链接会按预期工作,所以我必须在某处使用激活挂钩出错。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您是否复制了所有功能代码? 因为,似乎$ inspection_structure是空的..

答案 1 :(得分:0)

您确定register_activation_hook( FILE ,'foodsafety_activate');在主插件文件中?我遇到过同样的问题。事实证明,寄存器激活仅在置于主插件文件中时才有效。