如果管理员删除帖子并执行某些功能,则通知帖子作者

时间:2011-02-24 作者:Harjeet Singh

我正在研究一个主题,在这个主题中,当用户发布帖子时,会在meta中添加点。。。它工作得很好,但问题是当一篇帖子被管理员删除时,分数应该降低,作者应该得到提示。主要问题是获取帖子的作者id,并在帖子被删除后执行函数。。。。

我尝试的代码是

function deletePointFromUser($post_ID) {
global $wpdb;
$authorid = $wpdb->get_var(\'SELECT post_author FROM wp_posts WHERE post_id = $post_ID\');
$currentPointNumber = get_usermeta($authorid, \'points\');

//Delete 1 to the current Point Score
$newPointNumber = $currentPointNumber - 1;  
update_usermeta( $authorid, \'points\', $newPointNumber); 
 }
add_action(\'deleted_post\', \'deletePointFromUser\');

1 个回复
最合适的回答,由SO网友:wyrfel 整理而成

首先,使用WP函数比编写自己的SQL更好。尽管可能会贵一点:

$post = get_post($post_ID);
$authorid = $post->post_author;
其次,它不是get_usermeta(), 但是get_user_meta() 完整的通话应该包括true 作为第三个参数:

$currentPointNumber = get_user_meta($authorid, \'points\', true);
然后是update_user_meta(), 同样,您不需要初始化新变量,只需执行以下操作:

update_user_meta($authorid, \'points\', $currentPointNumber-1);

结束

相关推荐

posts and cms and posts again

我正在建立一个可湿性粉剂网站作为一个CMS,将出售CD。我在一个我称之为录音的页面上设置了单独的标题,并有许多类别组成了光盘集。不过,我不确定这是否是将网站设置为CMS的最佳方式。此外,我想在网站的“关于我们”部分下设置另一个博客页面。这是否可能,因为我已经将录制页面分配为帖子页面?或者我可以只在帖子页面上写一个博客条目,然后只调用那些帖子吗?除了使用POST方法之外,还有没有更好的方法来创建“录音”数据库?