博客文章(wp-post)没有出现在我安装的buddypress的开箱即用的活动流中。所以我在bp-acitivity-actions.php中添加了一段代码: function buddypress_edit_blog_post($ post_id){ global $ bp,$ user_id; $ post = get_post($ post_id); $ title = $ post-> post_title; $ user_fullname = bp_core_get_user_displayname($ user_id);
bp_activity_add(array(
'action' => $user_fullname.' updated ' . $title . ':',
'component' => 'blog_post',
'type' => 'update_post',
'primary_link' => get_permalink($post_id),
'user_id' => $user_id,
'content' => $post->post_content
));
}
add_action('edit_post', 'buddypress_edit_blog_post');
现在网站范围的活动正在显示用户的新博客帖子,但是,我仍然无法在个人活动流中看到它。 我不明白,为什么会这样? 我想知道哪一段代码正在管理个人活动流,我想知道它是如何工作的。
在用全局$ user_id替换wp_get_current_user()返回的局部变量$ user_id之后,没有任何改变。 这是我的代码的新版本:
function buddypress_edit_blog_post($post_id) {
global $bp; //, $user_id;
$user_id = wp_get_current_user();
$post = get_post($post_id);
$title = $post->post_title;
$user_fullname = bp_core_get_user_displayname($user_id);
bp_activity_add(array(
'action' => $user_fullname.' updated ' . $title . ':',
'component' => 'blog_post',
'type' => 'update_post',
'primary_link' => get_permalink($post_id),
'user_id' => $user_id,
'content' => $post->post_content
));
}
add_action('edit_post', 'buddypress_edit_blog_post');
感谢。
答案 0 :(得分:0)
$user_id
函数中的变量bp_activity_add()
需要设置为用户ID,以便活动项目显示在该用户的个人信息流中。确保正确设置了值。
现在,获取用户的ID会略有不同,具体取决于您需要的特定用户。例如:
bp_loggedin_user_id()
会为您提供当前登录用户的ID bp_displayed_user_id()
返回当前显示的用户的ID 您应该使用适合您的用例的功能。
答案 1 :(得分:0)
wp_get_current_user()
返回一个对象,而不是单个变量。 https://codex.wordpress.org/Function_Reference/wp_get_current_user
或者你可以使用bp_loggedin_user_id()
正如亨利赖特所说的那样。
所以我在bp-acitivity-actions.php
中添加了一段代码
您不应该更改核心文件。你的功能可以放在你的主题/ functions.php。
中