BuddyPress:我如何让摘录的组描述更短?

时间:2012-04-25 作者:Brayaz Zayarb

我在buddypress中设置了一个主题,我想在那里为我的团队设置一个挑逗部分。它工作正常,但我有一个问题,缩短组描述。。。

我是这样使用它的:

<p><a href="<?php bp_group_permalink() ?>"><?php bp_group_name() ?></a></p>
<p><?php bp_group_description_excerpt() ?></p>
如果有很长的组描述,它会破坏我的布局。有没有可能(像在wordpress中)缩短摘录(使用函数或其他东西)?比如“最多20个字母”之类的?

谢谢

1 个回复
SO网友:kaiser

自定义API为其编写一个普通API包装函数,并将其放置在函数中。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();.

结束

相关推荐

BuddyPress虚假(非机器人)用户

BuddyPress新手问题:我有一个全新的网站运行WP 3.3.1和BP 1.5。甚至在发布之前,我每天都被无数假冒用户所困扰。我不认为他们是机器人,因为我在注册时有一个数学问题,并且启用了电子邮件激活。他们通常使用gmail地址进行注册,然后激活并发布包含各种垃圾邮件链接的更新。我还没有找到任何关于如何阻止非机器人垃圾邮件发送者的真正想法,并且几乎放弃了自动化解决方案。除此之外,是否有办法保留新用户以供管理员批准,并阻止他们在获得批准之前发布?非常感谢任何解决方案!谢谢戴安娜