web-dev-qa-db-ja.com

buddypress:どうやってグループの説明を短くすることができますか?

私はbuddypressでテーマを設定し、私はそこに私のグループのためのティーザーセクションを持ちたいです。それはうまくいきますが、私はグループの説明を短くするのに問題があります...

私はこのように使っています:

<p><a href="<?php bp_group_permalink() ?>"><?php bp_group_name() ?></a></p>
<p><?php bp_group_description_excerpt() ?></p>

非常に長いグループ記述があると、それは私のレイアウトをクラッシュさせます。 (wordpressのように)抜粋を短くすること(関数などで)は可能ですか? 「最大20文字」のようなものですか、それともそのようなものですか?

ありがとう。

1
Brayaz Zayarb

カスタムAPI

そのための通常のAPIラッパー関数を書いて、それをあなたのfunctions.phpテーマに入れるか、または(mu-)プラグインとして提供してください。

言葉をトリム

/**
 * Trim Words Cb fn
 * @link Adjusted from http://snipplr.com/view.php?codeview&id=20397
 * 
 * @param string $excerpt Input string
 * @param int $count Word count
 * @param boolean/string $more Whether to show a "more" or not or a string
 * @return string $excerpt
 */
function wpse50198_Word_trim( $excerpt, $limit, $more = FALSE )
{
    $output = explode( ' ', $excerpt );
    $count = count( $input );

    if ( $limit < $count )  )
        array_splice( $excerpt, $count, null, $output );

    if ( $more )
        $output .= $more;

    $output = implode( ' ', $output );

    return $output;
}

テンプレートタグ

/**
 * 
 * @param bool $count Number of words to show - (default) 20
 * @param boolean/string $more Whether to show a "more" or not - (default) ...
 * @param bool $echo Print or return the excerpt - (default) TRUE
 * @return string $excerpt The reduced excerpt
 */
function short_bp_group_descr_excerpt( $count = 20, $more = '&hellip', $echo = TRUE )
{
    $excerpt = bp_get_group_description_excerpt();
    $length = str_Word_count( $excerpt );

    if ( $count < $length )
        $excerpt = wpse50198_trim_words( $excerpt, $count, $more );

    if ( $echo )
        echo $excerpt;

    return $excerpt;
}

使用法

さて、あなたのテンプレート内のテンプレートタグのようにそれを単に呼び出してください:short_bp_group_descr_excerpt();

1
kaiser