WordPress 使用钩子进行主题开发时避免死循环

WordPress 使用钩子进行主题开发时避免死循环,第1张

概述WordPress开发时,我们经常会使用save_post或create_post_tag等钩子,以便在更新文章或分类时,增加一些附加数据,这些钩子触发的时机是发布或更新数

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。

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',

];

 

// 更新文章

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 开发过程中遇到了死循环问题,不妨参考上面的代码进行修改,这样既能实现我们需要的功能,又不会导致死循环的问题。

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的WordPress 使用钩子进行主题开发时避免死循环全部内容,希望文章能够帮你解决WordPress 使用钩子进行主题开发时避免死循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/1006980.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存