您现在的位置是:首页 > 教程 > WordPress教程WordPress教程
WordPress使用钩子主题开发避免死循环的方法
俞贡延2023-08-01 00:04:41WordPress教程已有人查阅
导读WordPress 开发时,我们经常会使用 save_post 或 create_post_tag 等钩子,以便在更新文章或分类时,增加一些附加数据,这些钩子触发的时机是发布或更新数据的时间
WordPress 开发时,我们经常会使用 save_post 或 create_post_tag 等钩子,以便在更新文章或分类时,增加一些附加数据,这些钩子触发的时机是发布或更新数据的时间,如果处理不好,就会出现死循环的情况,导致更新数据时出现死循环的情况。
举个例子,我们需要在保存文章的时候,挂在一个函数到 save_post 钩子上,这个函数的目的是修改文章标题,在文章标题前面加上作者名称,我们通过调用wp_update_post 函数来显示这个修改。示例代码如下。
add_action('save_post', 'wprs_update_post');
function wprs_update_post($post_id)
{
$title = get_the_title($post_id);
$title = "一刀:" . $title;
$args = [
'ID' => $post_id,
'post_title' => $title,
];
wp_update_post($args);
}
上面的代码中,「save_post」这个钩子发生在 wp_update_post 函数的调用过程中,通过「save_post」钩子,我们又调用了 wp_update_post 这个函数,这个函数中,又运行了「save_post」钩子。于是,程序就这么不知疲倦的运行了下去。
有经验的程序员可能很容易就发现了这个问题,可是电脑并不知道这是个死循环,我们不能去责怪电脑,毕竟那只是个没有思想的机器。我们可以做的是在开发过程中尽量小心,避免死循环的出现。
那么,怎么解决 WordPress 中出现的这个死循环呢?其实方法很简单。
怎么避免 WordPress 中的死循环还是上面的代码,我们稍作修改,就可以 的避免这个死循环了。下面是修改后的代码,对比上面出现死循环的代码,我们只添加了两行。
add_action('save_post', 'wprs_update_post');
function wprs_update_post($post_id)
{
// 获取文章标题并在文章标题前面加上作者
$title = get_the_title($post_id);
$title = "一刀:" . $title;
$args = [
'ID' => $post_id,
'post_title' => $title,
];
// 更新文章
remove_action('save_post', 'wprs_update_post');
wp_update_post($args);
add_action('save_post', 'wprs_update_post');
}
原理很简单,在运行 「wp_update_post」函数之前,我们先卸载掉挂在掉「save_post」钩子上导致死循环的函数,这样就不会出现重复执行 「wprs_update_post」函数了,更新完文章后,我们再把这个钩子挂载上,以便后续使用。
如果您在 WordPress开发过程中遇到了死循环问题,不妨参考上面的代码进行修改,这样既能实现我们需要的功能,又不会导致死循环的问题。
本文标签:
很赞哦! ()
相关文章
- Nginx常用Rewrite伪静态规则WordPress/PHPCMS/ECSHOP/ShopEX/SaB
- dedecms模板中怎么调用wordpress文章
- dedecms模板中调用wordpress的文章的实现方法
- wordpress插件怎么实现链接跳转
- 两个wordpress数据怎么互通
- wordpress主题信息的删除方法
- drupal与wordpress的优势,哪个更容易上手
- WordPress主题怎么加密,WordPress主题加密怎么破解
- wordpress需要更新升级吗
- wordpress二次开发难不难
- wordpress是免费的吗,wordpress要授权吗
- 手机管理wordpress的软件有哪些
随机图文
-
wordpress修改账号密码的方法
WordPress用户登录密码忘记了怎么办?出于安全原因需要修改WordPress登录密码,如何修改?虽然登录页面上有找回密码功能,可以重置密码 -
wordpress没有授权会被告吗
使用WordPress不会被告因为WordPress是一个免费的开源项目,在GNU通用公共许可证下授权发布。 -
wordpress适合门户网站吗
wordpress是适合门户网站的。绝大多数的网站类型都可以用WordPress做,WordPress是使用PHP语言开发的博客平台 -
wordpress实现创建动态置顶文章的方法
置顶文章的作用是希望长时间引起读者注意,可以表明站点的简介、版权声明、友情链接的交换原则等;本文将介绍如何给wordpress创建动态
留言与评论 (共有 条评论) |