截断BuddyPress中的最新活动

时间:2012-06-28 作者:Androliyah

我正在使用buddypress悬停卡插件,我正在发布一些个人资料信息以及最新的状态更新。如果用户发布长状态,它将用完hovercard div字段。我如何正确地截断它?

<div class="update">
  <strong><?php _e("Last update", \'bp-hovercards\'); ?></strong>
  <br>
  <?php bp_member_latest_update( \'length=10\' ) ?>
</div>

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

您可以筛选\'bp_get_activity_latest_update_excerpt\'. 示例代码,未测试,您需要function utf8_truncate():

add_filter( \'bp_get_activity_latest_update_excerpt\', \'wpse_56860_trim_buddypress_excerpt\' );

function wpse_56860_trim_buddypress_excerpt( $excerpt )
{
    // Number of characters to show. Adjust this to your needs.
    $length = 80;

    // Fix BuddyPress’ wrong quotes.
    return _x( \'&#8220;\', \'opening curly double quote\' ) 
        . utf8_truncate( $excerpt, $length )
        . _x( \'&#8221;\', \'closing curly double quote\' );
}
Download as complete plugin.

更新有一种替代方法:创建hovercard.php 在您的主题中,插件将使用此文件,而不是插件目录中的同名文件。在里面hovercard.php 更改线路bp_member_latest_update( \'length=10\' ) 获取适当的长度或在文件顶部添加过滤器,并在最后一个过滤器之后将其删除endif;:

<?php if ( bp_has_members( "include={$_POST[\'userid\']}&max=1") ) : 
add_filter( \'bp_get_activity_latest_update_excerpt\', \'wpse_56860_trim_buddypress_excerpt\', 8 );
?>
// lots of stuff
<?php endif; 

remove_filter( \'bp_get_activity_latest_update_excerpt\', \'wpse_56860_trim_buddypress_excerpt\', 8 );

结束