因为,我只能保持三分钟热度,所以,知识点一定要在三分钟之内讲完……
在 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];
}
原来也是全局变量……
-
Post Type Switcher将 WordPress文章从一个类型转换到另一个类型Post Type Switcher是一个WordPress插件,用于将文章从一个类型转换到另一个类型,包括自定义文章类型。安装并启用该插件后,在编辑文章时,会在发布面板中增加Post Type选项,用户可以选择要转换到的文章类型并更新文章。此外,插件也支持在后台所有文章页面批量更改文章类型。
-
Fluent Forms - WordPress表单插件Fluent Forms是一款功能强大且易于使用的WordPress表单插件,适合各种规模的网站使用。无论是简单的联系表单还是复杂的用户调查表,Fluent Forms都能满足用户的需求。
-
WP-Ban WordPress禁止指定IP访问网站的插件WP-Ban是一款专为WordPress网站设计的安全插件,其主要功能是屏蔽恶意或不受欢迎的IP地址,以增强网站的安全性。
-
WPvivid插件:WordPress网站备份与还原的解决方案WPvivid插件是一款功能强大的WordPress插件,专为网站数据备份、还原和搬家设计。它支持高度自定义的备份选项,允许用户选择备份整个站点(包括数据库和文件)、仅文件或仅数据库。
-
Dashboard Notes WordPress仪表盘中添加备注信息的实用插件WP Dashboard Notes插件是WordPress平台上一个实用的仪表盘备注信息工具,它可以帮助网站管理者更好地记录和管理网站的日常维护工作、待办事项等。通过该插件的自定义备注和待办列表功能,用户可以更好的跟踪和完成任务,提高网站管理的效率和质量。
-
FluentSMTP一款功能强大且免费的WordPress SMTP插件FluentSMTP是一款功能强大且免费的SMTP插件,它支持为WordPress配置多个SMTP发送服务器。
暂无评论,抢个沙发...