web-dev-qa-db-ja.com

購読者の管理バーを削除

私は会員制サイトを持っています。購読者の管理バーを無効にする必要があります。

私は以下のコードを使いました:

add_action('after_setup_theme', 'remove_admin_bar');

function remove_admin_bar() {
if (!current_user_can('administrator') && !is_admin()) {
  show_admin_bar(false);
}
}

これは購読者のフロントエンドから管理バーを削除しますが、彼らが彼らのプロフィールページwp-admin/profile.phpに行っても、管理バーはまだそこに表示されたままです。

私は、コードが購読者のバックエンドで動作しないようにしたと思う、Paid Membership Proプラグインを使用しています。

また、このコードを使用して、管理バーをいたるところから削除しました。

if (!function_exists('disableAdminBar')) {

    function disableAdminBar(){

    remove_action( 'admin_footer', 'wp_admin_bar_render', 1000 );

    function remove_admin_bar_style_backend() {
      echo '<style>body.admin-bar #wpcontent, body.admin-bar #adminmenu { padding-top: 0px !important; }</style>';
    }

    add_filter('admin_head','remove_admin_bar_style_backend');

  }

}

add_filter('admin_head','remove_admin_bar_style_backend');

しかし、このコードも機能していません。

フロントエンドページとバックエンドページの両方から購読者の管理バーを削除したいだけです。

足りないコードはありますか。 有料会員Pro を使用しています。

助けてくれてありがとう。

1
Jitendra Mishra

私はこれについて簡単に調査しましたが、 codex で述べたように、関数を使ってできるとは思いません。

注:管理画面を表示しているときにツールバーを非表示にすることはできなくなりましたが、ユーザーは自分のプロフィール画面でサイトのフロントエンドで無効にすることができます。

フロントエンドで無効にすると、すでに行ったのと同じ結果になります。

CSSで隠すことをお勧めします。

#wpadminbar {
    display: none;
}
html {
    padding-top: 0; // Move up the page's content by the bar's height
}
0

非管理者ユーザーから管理バーを非表示にするには、functions.phpファイルに次のコードを追加します

// show admin bar only for admins
if (!current_user_can('manage_options')) {
    add_filter('show_admin_bar', '__return_false');
}
// show admin bar only for admins and editors
if (!current_user_can('edit_posts')) {
    add_filter('show_admin_bar', '__return_false');
}
1
Deepak Rana

PMProチームは、これを行うためのプラグインを作成しました: https://wordpress.org/plugins/hide-admin-bar-from-non-admins/

には、管理バーを完全に非表示にするために必要なPHPおよびCSSコードが含まれます。 https://plugins.svn.wordpress.org/hide-admin-bar-from-non-admins/trunk /hide-admin-bar-from-non-admins.php

function habfna_hide_admin_bar_settings()
{
?>
    <style type="text/css">
        .show-admin-bar {
            display: none;
        }
    </style>
<?php
}
function habfna_disable_admin_bar()
{
    if(!current_user_can('administrator'))
    {
        add_filter( 'show_admin_bar', '__return_false' );
        add_action( 'admin_print_scripts-profile.php', 'habfna_hide_admin_bar_settings' );
    }
}
add_action('init', 'habfna_disable_admin_bar', 9);
1
Jason Coleman