web-dev-qa-db-ja.com

BuddyPress関数の出力で文字長を制限する方法

BuddyPressには、プロフィールデータをメンバーループに引き込む関数(bp_member_profile_data)があります。

<?php
bp_member_profile_data( 'field=Organization' );
bp_member_profile_data( 'field=Brief Biography' );  

/***
* If you want to show specific profile fields here you can,
* but it'll add an extra query for each member in the loop
* (only one regardless of the number of fields you show):
* bp_member_profile_data( 'field=the field name' );   */
 ?>

Brief Biographyのエコーの長さを制限する方法を考えています。私はBavatosanの例とsubstrを見ましたが、それらをどこで変更するべきかを知るという点では、この時点では私を超えています。

1
Christopher

私は、buddypressがスクリーンに表示する代わりに値を返すその関数のget *バージョンを持っていると思います。

そのため、返される文字列を50のような一定量の文字の後で切り取るだけです。

$profile_bio = bp_get_member_profile_data( 'field=Brief Biography' );

if(strlen($profile_bio) > 50))
  $profile_bio = substr($profile_bio, 0, 50).'...';

echo $profile_bio;

Get関数がない場合は、常に出力バッファリングを使用できます。

ob_start();
bp_member_profile_data( 'field=Brief Biography' );  
$profile_bio = ob_get_clean();

// rest of the code is the same
1
onetrickpony