因为,我只能保持三分钟热度,所以,知识点一定要在三分钟之内讲完……
在 WordPress 中,一些钩子在一次请求中就会执行多次,比如 save_post 钩子。如果,我们在 save_post 钩子上添加了回调函数,这个函数也会被执行多次。
怎么才能,避免自己的回调函数被多次执行呢?首先想到的估计是全局变量 - 搞一个全局的计数变量,执行过一次后就不执行了。
示例代码:
$zhuige_callback_times = 0;
function zhuige_callback()
{
global $zhuige_callback_times;
if ($zhuige_callback_times != 0) {
return;
}
$zhuige_callback_times ++;
// ...
}
add_action('save_post', 'zhuige_callback');
其实,WordPress早就造好轮子了:did_action 函数,可以返回指定钩子执行的次数。要达到我们的要求,只要在钩子第一次执行时执行,其他直接返回即可。
function zhuige_callback()
{
if (did_action('save_post') !== 1) {
return;
}
// ...
}
add_action('save_post', 'zhuige_callback');
瞄一眼 did_action 函数的源码:
function did_action($hook_name)
{
global $wp_actions;
if (!isset($wp_actions[$hook_name])) {
return 0;
}
return $wp_actions[$hook_name];
}
原来也是全局变量……
-
WordPress插件安装的几种方法常有人问追格小编,WordPress插件怎么安装,今天小编简单说说插件的几种方法
-
WordPress函数:wp_enqueue_block_support_stylesWordPress函数:wp_enqueue_block_support_styles
-
WordPress函数:wp_enqueue_classic_theme_stylesWordPress函数:wp_enqueue_classic_theme_styles
-
WordPress把登录页设置成首页的3种方法追格企业官网小程序客户问小编,WordPress怎么把wp-admin登录页设置成首页,因为从没做过类似操作,但想到的就是重定向,另一个就是短代码[wp_login_form]来显示登录表单。
-
WordPress插件:Backup Migration 备份迁移网站,再简单不过!Backup Migration是一款WordPress备份迁移插件,它具备强大的备份功能,可以一键创建网站备份,或者自定义每周、每天、每月自动备份网站。
-
WP Multilang WordPress翻译插件WP Multilang插件的主要功能是提供多语言支持,使用户能够创建多语言版本的网站,满足不同语言用户的需求。
暂无评论,抢个沙发...