我想将结果限制为10个元素(10个单词)。这是我得到的代码:
function ls_bp_hashtags_cloud() {
$args = array () ;
if ( bp_is_activity_component() ) {
$toHead = __( 'Popular Hashtags across network' , 'bp-hashtags' ) ;
}
if ( bp_is_user_activity() ) {
$toHead = __( 'Hashtags by user' , 'bp-hashtags' ) ;
$args[ 'user_id' ] = bp_displayed_user_id() ;
}
if ( bp_is_group_activity() || bp_is_group_home() ) {
$toHead = __( 'Hashtags in group' , 'bp-hashtags' ) ;
$args[ 'if_activity_item_id' ] = bp_get_current_group_id() ;
}
echo '<div align="right"><h5>' . $toHead . '</h5>' ;
echo ls_bp_hashtags_generate_cloud( $args ) ;
echo '</div>' ;
}
以下是ls_bp_hashtags_generate_cloud()函数:
function ls_bp_hashtags_generate_cloud( $args = array() ) {
$hashtags = ls_bp_hashtags_get_hashtags( $args );
$defaults = array(
'smallest' => 10, 'largest' => 10, 'unit' => 'pt', 'number' => 0,
'format' => 'flat', 'separator' => ",\n\n", 'orderby' => 'count', 'order' => 'DESC',
'topic_count_text_callback' => 'default_topic_count_text',
'topic_count_scale_callback' => 'default_topic_count_scale', 'filter' => 1
);
$args = wp_parse_args( $args, $defaults );
extract( $args );
$tag_cloud = wp_generate_tag_cloud( $hashtags, $args );
$tag_cloud = '<div class="hashtags">' . $tag_cloud . '</div>';
return $tag_cloud;
}
我也得到了另一个,不确定是否需要:
function ls_bp_hashtags_get_hashtags( $args = array() ) {
global $wpdb;
$bp = buddypress();
$link = $bp->root_domain . "/" . $bp->activity->slug . "/" . BP_ACTIVITY_HASHTAGS_SLUG . "/";
bp_hashtags_set_constants();
$data = maybe_unserialize( get_site_option( 'ls_bp_hashtags' ) );
if ( $data['style']['show_hashsymbol'] == '1' ) {
$hashtag_name = ' CONCAT( "#", hashtag_name)';
} else {
$hashtag_name = 'hashtag_name ';
}
$toWhere = ls_bp_hashtags_generate_query_limitations( $args );
$results = $wpdb->get_results( 'SELECT COUNT(hashtag_name) as count, '
. $hashtag_name . ' as name, '
. 'CONCAT("' . $link . '", hashtag_slug) as link
FROM ' . BP_HASHTAGS_TABLE . ' WHERE 1=1 ' . $toWhere . ' GROUP BY hashtag_name' );
return $results;
}
我粘贴的第一个代码段位于一个文件中,而最后两个代码段位于另一个文件中。 我想我必须修改函数ls_bp_hashtags_generate_cloud(),关键是我不知道该怎么做。我尝试使用array_slice()和$ sql =“SELECT * FROM bp_activity LIMIT 10”;我检查了mysql数据库,我的ashtags位于bp_ashtags表中,但是当我打开这个表时,我看到每个hashtag被引用在bp_activity表中。 这个函数给了我我的buddypress活动流页面的ashtags云,所以它给了我数据库中存在的所有ahstag,而我想把结果限制在10个#ashtags(它是一个wordpress网站)。那说我真的是个新手,所以如果你可以帮我给我整个片段添加和放在哪里,我几乎不知道PHP编码。如果您需要了解有关此代码的其他信息,请告诉我;这个是一个提取物所以我不知道我是否遗漏了一些解决方案。提前谢谢
答案 0 :(得分:0)
是的,我必须修改ls_bp_hashtags_generate_cloud()函数,关键是我不知道该怎么做。我尝试使用array_slice()和$ sql =“SELECT * FROM bp_activity LIMIT 10”;我检查了mysql数据库,我的ashtags位于bp_ashtags表中,但是当我打开这个表时,我看到每个hashtag被引用在bp_activity表中。这个函数给了我我的buddypress活动流页面的ashtags云,所以它给了我数据库中存在的所有ahstag,而我想把结果限制在10个#ashtags(它是一个wordpress网站)。那说我真的是个新手所以请你帮我给我整个片段添加和放在哪里。