私は過去3〜4年間WordPressを使用してきましたが、私はBuddyPressに慣れていません。
セキュリティ上の理由から、管理者アカウントをBuddyPressから完全に隠したいと思います。たとえば、通常のWordPressブログでは、2つの別々のアカウントがあります(1つは非表示のままの管理者権限を持ち、もう1つはすべての記事を公開するための編集者役割のみを持つ)。そうすれば、管理者アカウントは一般から隠され、侵入しようとする人は誰でもパスワードとユーザー名の両方を推測しなければならなくなります。 BuddyPressでは、管理者アカウントは一般に公開されているため、これはそれほど簡単ではありません。
私がやれたことの1つは、/ bp-themes/bp-default /members/member_loop.phpファイルを編集して、管理者プロファイルをmembersディレクトリから除外することです。 (はい、デフォルトのテーマを編集して、代わりに子テーマやスタンドアロンテーマを作成しないでください。これが解決されたら、それを実現します。)&exclude = 1パラメーターを追加しました。管理者アカウント)など
<?php if ( bp_has_members( bp_ajax_querystring( 'members' ).'&exclude=1' ) ) : ?>
しかし、私は以下のようにいくらか助けが必要です:
管理者プロファイルを非表示にする (つまり、自分自身にのみ表示され、他の人には表示されないようにする)。
管理者のアクティビティがサイトに公開されないようにする。
それとも私は他の何かを欠場しましたか?
PS。 BuddyPressをMultiSiteネットワークにインストールすることを考えているので、このような方法でスーパー管理者アカウントを公開しないことが非常に重要です。
編集:だからここに私が#1のために思い付いたものです(それはテーマのfunctions.php
ページに入ります):
// Hide admin profile pages
add_action( 'wp', 'hide_profile_template', 1 );
function hide_profile_template() {
global $bp;
if(bp_is_profile && $bp->displayed_user->id == 1 && $bp->loggedin_user->id != 1) :
global $wp_query;
$wp_query->set_404();
status_header(404);
include(locate_template('404.php'));
exit;
endif;
}
それで今/私はまだ 管理活動を隠す (#2)の助けが必要です。
私はこれを見つけました:
BuddyPressベースのソーシャルネットワーク上のメンバーディレクトリからユーザーを除外する
'bp_ajax_querystring'
フィルタにフックする必要があります。次のコードは、メンバーディレクトリからユーザーを除外するのを許可します。それらは、友だちとなっている他のユーザーの友だちリストにまだ表示されます。
add_action('bp_ajax_querystring','bpdev_exclude_users',20,2);
function bpdev_exclude_users($qs=false,$object=false){
//list of users to exclude
$excluded_user='1,2,3';//comma separated ids of users whom you want to exclude
if($object!='members')//hide for members only
return $qs;
$args=wp_parse_args($qs);
//check if we are listing friends?, do not exclude in this case
if(!empty($args['user_id']))
return $qs;
if(!empty($args['exclude']))
$args['exclude']=$args['exclude'].','.$excluded_user;
else
$args['exclude']=$excluded_user;
$qs=build_query($args);
return $qs;
}
そしてBP forunsでは:
Buddypress活動にadmin活動を隠すには?
このコードをbp-custom.phpに入力すると、サイト管理者のアクティビティは記録されず、[Who is Online]/[最近アクティブなメンバー]ウィジェットにも表示されません。
add_action("plugins_loaded","bpdev_init_sm_mode");
function bpdev_init_sm_mode(){
if(is_site_admin())
remove_action("wp_head","bp_core_record_activity"); //id SM is on, remove the record activity hook
}
私はあなたが両方のフィルタをマージして管理者を非表示にしてすべてのことができると思います:)
_ update _
これらのハックは1.6 /で動作していないため - このトピック それはBuddyPressの古い管理バーを使って動作するかもしれないことを示唆しています。そうですか?
// http://wordpress.org/extend/plugins/bp-ninja/
add_action('bp_init', function() {
global $bp;
if (is_super_admin()) {
//first remove the action that record the last activity
remove_action('wp_head', 'bp_core_record_activity');
//then remove the last activity, if present
delete_usermeta($bp->loggedin_user->id, 'last_activity');
}
});
// "Not recently active" yazısını super admin için kaldır
add_filter( 'bp_core_get_last_activity', function($last_active){
global $bp;
if ( bp_is_active( 'xprofile' ) ){
$last_active_bp_string = __( 'Not recently active', 'buddypress' );
if( ($last_active_bp_string == $last_active) && is_super_admin($bp->displayed_user->id)) {
$last_active = __('Network Admin');
}
}
return $last_active;
});
これを行う方法を見つけました。そのbuddypress忍者と管理バーを元に戻すのコンボ。忍者プラグインは動作しますが、現在、新しい管理バーで切り替えることはできません。つまり、古いバーを一時的にアクティブにしてステルスモードを切り替えてから、新しいバーを再びアクティブにします。
詳細はこちら:
私はこのきちんとした小さなコードをbuddydevに見つけました。もともと現在のユーザーを隠すために使用されていました。しかし、管理者を隠すように簡単に変更されます。
add_action( 'pre_user_query', 'devb_exclude_loggedin_user', 201 );
function devb_exclude_loggedin_user( $query ) {
//do not hide users inside the admin
if ( is_admin() && !defined('DOING_AJAX') )
return;
$qv = $query->query_vars;
global $wpdb;
//hide in my case user_id: 1
$query->query_where .= $wpdb->prepare(" AND {$wpdb->users}.ID !=%d ", 1);
}
Buddypress 1.9.2から管理者ユーザを削除しました
これが私のやり方です。
私の管理者ユーザーID 2
ファイルの場所:buddypress\bp-members\bp-members-template.php
292行目を探します'exclude' => false,
そしてfalse
をur user idに変更します私の場合2
:
// type: active ( default ) | random | newest | popular | online | alphabetical
$defaults = array(
'type' => $type,
'page' => $page,
'per_page' => 20,
'max' => false,
'page_arg' => 'upage', // See https://buddypress.trac.wordpress.org/ticket/3679
'include' => false, // Pass a user_id or a list (comma-separated or array) of user_ids to only show these users
'exclude' => 2, // Pass a user_id or a list (comma-separated or array) of user_ids to exclude these users
'user_id' => $user_id, // Pass a user_id to only show friends of this user
'search_terms' => $search_terms, // Pass search_terms to filter users by their profile data
'meta_key' => false, // Only return users with this usermeta
'meta_value' => false, // Only return users where the usermeta value matches. Requires meta_key
'populate_extras' => true // Fetch usermeta? Friend count, last active etc.
);