2012-08-25 64 views
2

我知道有在BuddyPress的一種方法,它可以幫助隱藏某些個人資料欄位:BuddyPress的隱藏個人資料欄

function bp_has_profile($args = '') { 
    global $profile_template; 

    // Only show empty fields if we're on the Dashboard, or we're on a user's profile edit page, 
    // or this is a registration page 
    $hide_empty_fields_default = (!is_network_admin() && !is_admin() && !bp_is_user_profile_edit() && !bp_is_register_page()); 

    // We only need to fetch visibility levels when viewing your own profile 
    if (bp_is_my_profile() || bp_current_user_can('bp_moderate') || bp_is_register_page()) { 
     $fetch_visibility_level_default = true; 
    } else { 
     $fetch_visibility_level_default = false; 
    } 

    $defaults = array(
     'user_id'    => bp_displayed_user_id(), 
     'profile_group_id' => false, 
     'hide_empty_groups' => true, 
     'hide_empty_fields' => $hide_empty_fields_default, 
     'fetch_fields'  => true, 
     'fetch_field_data' => true, 
     'fetch_visibility_level' => $fetch_visibility_level_default, 
     'exclude_groups'  => false, // Comma-separated list of profile field group IDs to exclude 
     'exclude_fields'  => false // Comma-separated list of profile field IDs to exclude 
    ); 

    $r = wp_parse_args($args, $defaults); 
    extract($r, EXTR_SKIP); 

    $profile_template = new BP_XProfile_Data_Template($user_id, $profile_group_id, $hide_empty_groups, $fetch_fields, $fetch_field_data, $exclude_groups, $exclude_fields, $hide_empty_fields, $fetch_visibility_level); 
    return apply_filters('bp_has_profile', $profile_template->has_groups(), $profile_template); 
} 

我不知道如何調用此方法並傳入「exclude_fields」 => $ IDs_to_hide

回答

0

是的,可以隱藏配置文件頁面中的一些字段。

首先轉到您的主題文件夾中的edit.php。如果您想隱藏文本框並命名爲「Full Name」,則在此處。

<?php if ('textbox' == bp_get_the_profile_field_type()) : ?> 
    <?php if ('Full Name' != bp_the_profile_field_name()) : ?> 
     <label for="<?php bp_the_profile_field_input_name(); ?>"><?php bp_the_profile_field_name(); ?> <?php if (bp_get_the_profile_field_is_required()) : ?><?php _e('(required)', 'buddypress'); ?><?php endif; ?></label> 
     <input type="text" name="<?php bp_the_profile_field_input_name(); ?>" id="<?php bp_the_profile_field_input_name(); ?>" value="<?php bp_the_profile_field_edit_value(); ?>" <?php if (bp_get_the_profile_field_is_required()) : ?>aria-required="true"<?php endif; ?>/> 
     <?php endif; ?> 
<?php endif; ?> 

上面的代碼是相同profile.php文件,但我會把只有新if條件一樣把條件在其他單選按鈕和選擇框等

您的姓名配置文件字段不顯示在你的檔案中。

0

不知道是否有辦法用你的主題功能做到這一點,但你可以很容易地將它隱藏在編輯循環中。 /buddypress/members/single/profile/edit.php複製到你的主題,並加入這一行:

<?php if ('Field Name' == bp_get_the_profile_field_name()) continue; ?>

略低於該行:

<?php while (bp_profile_fields()) : bp_the_profile_field(); ?>

這類似於奇拉格的做法,但會跳過所有與字段相關的事情,包括包裝div,所以你沒有多餘的HTML。

0

您可以使用CSS隱藏具有ID選擇器的特定字段。

#field_1 { 
display:none; 
} 
#signup_username { 
display:none; 
} 
相關問題