Je construis un portail de la ville/un répertoire d'entreprises sociales avec buddypress et wordpress. Toutes les listes d'entreprises sont stockées sous un type de publication personnalisé appelé "entreprise". J'utilise le code suivant pour afficher l'activité liée aux fiches d'entreprise dans le flux d'activité
function bbg_record_my_custom_post_type_comments( $post_types ) {
$post_types[] = 'business';
return $post_types;
}
add_filter( 'bp_blogs_record_comment_post_types', 'bbg_record_my_custom_post_type_comments' );
c'est le résultat http://i.stack.imgur.com/Poaay.png
En ce moment, il est dit
l'utilisateur a commenté le post 'postname'
Alors que j'en ai besoin de dire
l'utilisateur a écrit un avis sur 'postname'
pour le type de poste commercial, et
l'utilisateur a commenté 'postname'
pour d'autres types de poste.
Toute aide est grandement appréciée.
Vous pouvez filtrer l'action avant de la sauvegarder en utilisant add_filter sur 'bp_blogs_activity_new_comment_action', comme indiqué dans bp-blogs-functions.php -> bp_blogs_record_comment ()
Ou vous pouvez filtrer avant que l'action ne soit affichée en utilisant add_filter sur 'bp_get_activity_action'
Probablement mieux faire le premier parce que vous pouvez facilement vérifier post-> post_type pour voir si c'est "business".
Cela montre comment ajuster l’activité pour la création d’un CPT: http://buddypress.org/community/groups/how-to-and-troubleshooting/forum/topic/display- custom-post-types-in-activity-feed/ Vous devriez pouvoir ajuster cela pour gérer les commentaires.
Merci @shanebp pour la réponse. Je poste ma fonction complète comme réponse afin qu'elle puisse aider les autres aussi (je ne savais pas si je devais l'ajouter à la question elle-même)
function jw_record_my_custom_comments_strings($activity_action, $comment_id, $is_approved = true ) {
global $bp;
$recorded_comment = get_comment( $comment_id );
// Get blog and post data
$blog_id = get_current_blog_id();
$recorded_comment->post = get_post( $recorded_comment->comment_post_ID );
if ( in_array( $recorded_comment->post->post_type, apply_filters( 'bp_blogs_record_comment_post_types', array( 'business' ) ) ) )
$activity_action = sprintf( __( '%1$s wrote a review on, %2$s', 'buddypress' ), bp_core_get_userlink( $user_id ), '<a href="' . $post_permalink . '">' . apply_filters( 'the_title', $recorded_comment->post->post_title ) . '</a>' );
return $activity_action;
}