Created
September 26, 2012 11:01
-
-
Save MartinL83/3787343 to your computer and use it in GitHub Desktop.
Buddypress custom posts on activity stream.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
** Put this in your ( for example ) functions.php file. | |
** Credits | |
** http://pastebin.com/qrfjCat8 | |
** http://premium.wpmudev.org/forums/topic/how-to-add-custom-posts-types-in-buddypress-activity | |
*/ | |
function custom_record_activity( $post_id, $post, $user_id = false ) { | |
global $bp, $wpdb; | |
//check for multisite install | |
if(!is_multisite()) return false; | |
$post_id = (int)$post_id; | |
$blog_id = (int)$wpdb->blogid; | |
if ( !$user_id ) | |
$user_id = (int)$post->post_author; | |
/* This is to stop infinite loops with Donncha's sitewide tags plugin */ | |
if ( (int)$bp->site_options['tags_blog_id'] == (int)$blog_id ) return false; | |
/* Don't record this if it's a regular post */ | |
if ( $post->post_type == 'post' ) return false; | |
if ( ( 'publish' == $post->post_status ) && ( '' == $post->post_password ) ) { | |
if ( (int)get_blog_option( $blog_id, 'blog_public' ) || !bp_core_is_multisite() ) { | |
/* Record this in activity streams */ | |
$post_permalink = get_permalink( $post_id ); | |
$activity_action = sprintf( __( '%1$s wrote a new post, %2$s, on the site %3$s', 'buddypress' ), bp_core_get_userlink( (int)$post->post_author ), '<a href="' . $post_permalink . '">' . $post->post_title . '</a>', get_blog_option($blog_id, 'blogname') ); | |
$activity_content = $post->post_content; | |
bp_blogs_record_activity( array( | |
'user_id' => (int)$post->post_author, | |
'action' => apply_filters( 'bp_blogs_activity_new_post_action', $activity_action, &$post, $post_permalink ), | |
'content' => apply_filters( 'bp_blogs_activity_new_post_content', $activity_content, &$post, $post_permalink ), | |
'primary_link' => apply_filters( 'bp_blogs_activity_new_post_primary_link', $post_permalink, $post_id ), | |
'type' => 'new_blog_post', | |
'item_id' => $blog_id, | |
'secondary_item_id' => $post_id, | |
'recorded_time' => $post->post_date_gmt | |
)); | |
} | |
} else | |
bp_blogs_remove_post( $post_id, $blog_id ); | |
bp_blogs_update_blogmeta( $blog_id, 'last_activity', bp_core_current_time() ); | |
do_action( 'bp_blogs_new_blog_post', $post_id, $post, $user_id ); | |
} | |
add_action( 'save_post', 'custom_record_activity', 10, 2 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment