it-swarm.com.de

buddypress: wie kann ich den gruppenbeschreibungsauszug kürzer machen?

Ich habe ein Thema in buddypress eingerichtet und möchte dort einen Teaser-Bereich für meine Gruppen haben. Es funktioniert gut, aber ich habe ein Problem, die Gruppenbeschreibung zu verkürzen ...

Ich benutze es so:

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

Wenn es eine sehr lange Gruppenbeschreibung gibt, stürzt mein Layout ab. Ist es möglich (wie in WordPress), den Ausschnitt zu verkürzen (mit einer Funktion oder so)? Wie "maximal 20 Buchstaben" oder so ähnlich?

Vielen Dank.

1
Brayaz Zayarb

Benutzerdefinierte API

Schreiben Sie eine normale API-Wrapper-Funktion dafür und platzieren Sie sie in Ihrem functions.php-Theme oder bieten Sie sie als (Mu-) Plugin an.

Wörter zuschneiden

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

Das Template-Tag

/**
 * 
 * @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;
}

Verwendungszweck

Nennen Sie es jetzt einfach wie jedes Template-Tag in Ihrer Vorlage: short_bp_group_descr_excerpt();.

1
kaiser