我正在尝试优化慢速wordpress网站。我使用一个名为Query Monitor的插件来查找异常。
我可以看到每页重新插入rewrite_rules选项(超过50000个字符)。
这是stacktrace:
add_option()
-
update_option()
wp-includes/option.php:301
WP_Rewrite->wp_rewrite_rules()
wp-includes/class-wp-rewrite.php:1452
WP_Rewrite->flush_rules()
wp-includes/class-wp-rewrite.php:1774
do_action('wp_loaded')
wp-includes/plugin.php:525
这些文件看起来像核心wordpress文件。
我不确定这是否是正常行为?我想不是因为我认为没有充分的理由。
你以前见过这个吗?
答案 0 :(得分:1)
WordPress保留所有自定义重写规则的缓存。有时插件或主题会对这些规则进行修改,但是在重新生成缓存之前,WordPress实际上不会识别这些更改。
这不是一个过程函数,而是一个WP_Rewrite类的非静态方法。要调用flush_rules(),首先必须确保使用WordPress'$ wp_rewrite global,并将其作为方法调用(参见上面的“用法”)。
注意:只要在WordPress管理员中更改或保存永久链接设置,就会调用相同的方法,因此可以通过访问设置>手动刷新重写规则。 WordPress管理员中的永久链接屏幕。
警告:如果在没有参数或参数为true的情况下调用此函数,则.htaccess将被覆盖,任何自定义规则都将丢失!
import {Component} from 'angular2/angular2';
import {MyCustomComponentMetadata} from ...;
export function MyCustomComponent(config: MyCustomComponentMetadata) {
return function(cls) {
var annotations = Reflect.getMetadata('annotations', cls) || [];
annotations.push(new Component(config));
Reflect.defineMetadata('annotations', annotations, cls);
return cls;
};
};