我正在编写一个自定义插件,以便在特定时间执行一些操作。我正在玩add\\u action和add\\u filter,但我当前的任务是将帖子url发布到Twitter帐户。问题是,我想将twitter API HTTP响应显示为管理员通知(Codex of Admin Notice) 但我完全迷路了。
以下是我的代码逻辑:
function Twit_the_url( $post_ID )
{
//connect to twitter api
//send tweet with url
//get twitter response
//send response to admin notice :
add_action(\'admin_notices\', create_function( "", "echo \\"$httpstatus
\\";" ) );
return $post_ID;
}
add_action( \'publish_post\', \'Twit_the_url\');
一切都很顺利,直到我打电话通知管理员。推文已创建,$httpstatus存在,但未显示我的消息!我一直在四处寻找提示和操作方法,但我不明白为什么它不起作用。我查看了两个不同的插件,看看它们是如何做到的,但没有任何改变。
所以如果有人能告诉我哪里错了,那就太好了!谢谢
SO网友:chrisguitarguy
这将是PHP 5.3+anonymous functions.
闭包示例:
<?php
function Twit_the_url( $post_ID )
{
//connect to twitter api
//send tweet with url
//get twitter response
//send response to admin notice :
add_action(\'admin_notices\', function() use ($httpstatus) {
echo \'<div class="error"><p>\', esc_html($httpstatus), \'</p></div>\';
});
return $post_ID;
}
add_action( \'publish_post\', \'Twit_the_url\');
或者,您可以将
Twit_the_url
和
admin_notices
回调到类中并使用类属性。