J'ai créé un thème dans buddypress et je souhaite créer une section teaser pour mes groupes. Cela fonctionne bien mais j'ai un problème pour raccourcir la description du groupe ...
Je l'utilise comme ceci:
<p><a href="<?php bp_group_permalink() ?>"><?php bp_group_name() ?></a></p>
<p><?php bp_group_description_excerpt() ?></p>
Si la description du groupe est très longue, ma mise en page se bloque. Est-il possible (comme dans wordpress) de raccourcir l'extrait (avec une fonction ou quelque chose)? Comme "maximum de 20 lettres", ou quelque chose comme ça?
Merci.
Écrivez une fonction d’encapsulation d’API normale et placez-la dans votre thème functions.php ou offrez-la sous la forme de plug-in (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;
}
Maintenant, appelez-le comme n'importe quelle balise de modèle dans votre modèle: short_bp_group_descr_excerpt();
.