web-dev-qa-db-ja.com

サイト管理者以外のプロファイルエントリを読み取り専用にする方法

私はいくつかの追加のプロフィールフィールドを(ユーザープロフィールフィールドの下で)buddypressに設定しました、そしてそれらがサイト管理者を除いて読み取り専用であることを確認したいです。

これを達成するにはどうすればよいですか。

ありがとうございました。

1
arcee123

編集画面のプロフィールフィールドは、サイト管理者以外の全員から隠すことができます - したがって、それらはサイト管理者のみが編集できます。それでも、公開プロフィール画面に表示されます。そのフィールドを編集するときにwp-adminのURLを見るか、または単に編集ボタンをロールオーバーすると、フィールドIDを取得できます。この関数をあなたの子テーマのfunctions.phpまたは bp-custom.php に追加してください。

function arcee_hide_profile_fields( $retval ) {

    if( is_super_admin () )
        return $retval;

    if(  bp_is_profile_edit()  )
        $retval['exclude_fields'] = '3,43,253'; //field ID's separated by comma

    return $retval;

}
add_filter( 'bp_after_has_profile_parse_args', 'arcee_hide_profile_fields' );
2
shanebp

このスニペットをあなたの子供テーマのfunctions.phpまたは bp-custom.php に追加してください。

function bpfr_hide_profile_edit( $retval ) {    
// remove field from edit tab
if(  bp_is_profile_edit() ) {       
    $retval['exclude_fields'] = '2'; // field ID's separated by comma
}   
// allow field on register page
if ( bp_is_register_page() ) {
    $retval['include_fields'] = '2'; // field ID's separated by comma
    }       

// hide the field on profile view tab
if ( $data = bp_get_profile_field_data( 'field=2' ) ) : 
    $retval['exclude_fields'] = '2'; // field ID's separated by comma   
endif;  

return $retval; 
}
add_filter( 'bp_after_has_profile_parse_args', 'bpfr_hide_profile_edit' );
0
jim.duck