如何在BuddyPress活动循环中显示自定义帖子类型的定制活动?

时间:2012-07-14 作者:Kavya Gokul

我正在与buddypress和wordpress建立一个城市门户/社交商业目录。所有业务列表都存储为名为“业务”的自定义帖子类型。我使用以下代码在活动流中显示与业务列表相关的活动

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\' );
这就是结果http://i.stack.imgur.com/Poaay.png

现在它说

用户对帖子“postname”发表了评论

而我需要它说

用户在“postname”上写了评论

对于业务岗位类型,以及

用户对“postname”发表了评论

对于其他职位类型。

非常感谢您的帮助。

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

您可以在保存操作之前对其进行筛选,方法是在“bp\\u blogs\\u activity\\u new\\u comment\\u action”上使用add\\u filter,如bp blogs函数中所示。php->bp\\u blogs\\u record\\u comment()

或者,您可以在显示操作之前使用“bp\\U get\\u activity\\u action”上的add\\u filter进行筛选

可能最好使用前一种方法,因为您可以轻松地检查post->post\\u type以查看它是否为“business”。

这显示了如何调整活动操作以创建CPT:http://buddypress.org/community/groups/how-to-and-troubleshooting/forum/topic/display-custom-post-types-in-activity-feed/你应该能够调整它来处理评论。

SO网友:Kavya Gokul

感谢shanebp的回答。我将我的完整功能作为答案发布,这样它也可以帮助其他人(不确定是否要将其添加到问题本身)

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;
    }

SO网友:TafMakura
/**
     * Replaces activity action with dynamic activity action 
     * @uses    bp_get_activity_action() filter
 */ 

function  custom_activity_action($action) { 

    $user_id =  bp_get_activity_user_id();
    $user_link = bp_core_get_userlink( $user_id );
    $activity_timestamp = bp_insert_activity_meta();

    if ($activity_type==\'YOUR ACTIVITY TYPE HERE i.e activity_update\'){

       $action = sprintf( __( \'%s posted a snippet %2$s\', \'buddypress\' ), $user_link, $activity_timestamp  );

       return $action;
   }

   return $action ; 

}
add_filter(\'bp_get_activity_action\', \'custom_activity_action\');
结束

相关推荐

搜索单个自定义帖子类型,BuddyPress

我试图只显示特定自定义帖子类型的搜索结果,我的代码很简单,我已经在我制作的一些wordpress网站上成功测试了它,但在这种情况下(buddypress)似乎不起作用。这是我的表格:<form id=\"vendor-search\" action=\"<?php bloginfo(\'siteurl\'); ?>\" method=\"get\"> <h5>Search for vendors</h5> <input type