我正在编写一个插件,允许订阅用户提交自定义类型的帖子,我正试图通过快捷码实现这一功能。现在的问题是,我的代码不是插入一篇帖子,而是插入数百篇帖子,直到PHP内存耗尽。。。下面是一个复制此问题的超小型代码:
add_shortcode( \'occaz-ajouter\', \'occasion_addedit\' );
function occasion_addedit(){
wp_insert_post(array(\'post_title\'=> \'hello\',
\'post_content\'=> \'Hello everybody\',
\'post_author\'=>1));
return "OK.";
}
(当然,我有一个包含[occaz Ajour]短代码的页面,当我访问这个页面时,我遇到了这个问题。)
我看到有几个人遇到过这样的无限循环,但所提供的解决方案似乎都不能解决我的问题,因为我没有使用通常解释无限循环的任何挂钩。。。有什么想法吗?
非常感谢,
不知道
SO网友:revo
当一个用户使用wp\\u insert\\u post给其他用户在WordPress中插入post的能力时,问题在于用户的能力。wp\\u insert\\u post使用current\\u user\\u can方法检查给定用户是否有能力发布帖子。从那以后,我也不知道出了什么问题。但是,只有将post\\u状态设置为publish时,才会发生这种情况。如果您碰巧将publish更改为其他状态,如draft,您会发现您可以成功插入WordPress帖子,而不会出现无限循环的问题。
和
但我希望我的用户拥有订阅者的能力,但能够自己发布帖子。如果你像我一样,你可能想绕过对发布帖子的检查。如果您查看wp\\u insert\\u post的代码实现,您会发现大多数检查都在查找关键字publish。另一种不使用关键字publish发布帖子的方法是使用备选关键字future。
http://hungred.com/how-to/wpinsertpost-infinity-loop-problem-return-blank-page/
Update奇怪的使用remove_action( current_filter(), __FUNCTION__ );
在wp\\u insert\\u post之前,请重试。