WordPress后台会因为插件过多,或者是功能过多,导致php查询很多,会让后台卡的飞起来,这是因为访问一次就会查询一次整个网站数据库,这样会导致整个网站后台都卡的要命;这个时候我们需要去让这个东西去异步执行,下面就以一点优化的网站地图作为例子。
WordPress任务计划异步执行
比如一点优化制作的网站地图功能,刚开始是挂了init的钩子上,也就是访问一次,查询一次,会导致整个网站后台卡,后面的话用了wp的计划任务(这里感谢小白兔和耗子的帮忙),一秒后执行,这样会让整个后台轻松很多,下面代码就是:
if ( !wp_next_scheduled( 'sitemap_xml' ) ) {
wp_schedule_event( time(), 'onesecond', 'sitemap_xml' ); // 一秒后
wp_schedule_event( time(), 'onesecond', 'sitemap_txt' ); // 一秒后//更多知识wwttl.com
}
但是这样每次访问,都会一秒后执行一次,所以需要在挂一个钩子,在触发钩子后一秒执行,这样后台就会顺畅很多,下面是示例代码:
function ydb_sitemap() {
if ( !wp_next_scheduled( 'sitemap_xml' ) ) {
wp_schedule_event( time(), 'onesecond', 'sitemap_xml' ); // 一秒后//更多知识wwttl.com
wp_schedule_event( time(), 'onesecond', 'sitemap_txt' ); // 一秒后
}
}
add_action( 'publish_post', 'ydb_sitemap' );