WordPressを複数で管理していたり、お客様に納品する場合などで「このウィジェットいらんわぁ」って時にはサクッと消しちゃう時のメモ。
デフォルトウィジェットを消す
ウィジェットが有効になっている場合、「RSS」「カテゴリー」「アーカイブ」などのウィジェットが使えるようになっています。
このウィジェットを消すにはfunction.phpに次のコードを追加します。
function ●●●() { unregister_widget('ウィジェットのクラス名'); } add_action('widgets_init', '●●●');
とりあえずデフォルトウィジェットを全部消してみる
デフォルトウィジェットは/wp-includes/default-widgets.php の下の方でセットされてるので参考に。
全部消す場合は次のようになります。
消したくないウィジェットはコメントアウトするか削除でどうぞ。
function remove_widgets() { unregister_widget('WP_Widget_Pages'); // 固定ページ unregister_widget('WP_Widget_Calendar'); // カレンダー unregister_widget('WP_Widget_Archives'); // アーカイブ unregister_widget('WP_Widget_Meta'); // メタ unregister_widget('WP_Widget_Search'); // 検索 unregister_widget('WP_Widget_Text'); // テキスト unregister_widget('WP_Widget_Categories'); // カテゴリー unregister_widget('WP_Widget_Recent_Posts'); // 最近の投稿 unregister_widget('WP_Widget_Recent_Comments'); // 最近のコメント unregister_widget('WP_Widget_RSS'); // RSS unregister_widget('WP_Widget_Tag_Cloud'); // タグクラウド unregister_widget('WP_Nav_Menu_Widget'); // カスタムメニュー }
プラグインで追加されるウィジェットを消すには?
デフォルトウィジェット以外にもプラグインをインストールした時に追加されるウィジェットがあります。
プラグインフォルダ内で「register_widget」を文字列検索すると
register_widget( ‘★★★’ ) が見つかるので、この★の部分をさっきのコードに追加します。
例えば、register_widget( ‘nantoka_Widget’ ) の場合
unregister_widget('nantoka_Widget'); // なんとかプラグイン
使い方例:編集者権限のユーザーにウィジェットでバナー管理してもらう
例えばこんな時にもいいかも!
普段は記事の追加をしているAさん(編集者権限)にウィジェットでバナーの管理もしてもらいたい
色々な方法があるかと思いますが、わりと簡単なプラグインと今回のウィジェットを消す方法でやってみます。
バナー専用のウィジェットエリアを追加
function.phpへの記入例
function banner_widgets_init() { register_sidebar( array( 'name' => 'バナー', 'id' => 'banner', 'before_widget' => '<div class="bn-contents">', 'after_widget' => '</div>', 'before_title' => '<div class="bn-title">', 'after_title' => '</div>', ) ); } add_action( 'widgets_init', 'banner_widgets_init' );
バナーを表示したいところにコードを記入
バナーを表示したいところ(sidebar.phpなど)に以下のようなコードを記入します。
<?php if (is_active_sidebar( 'banner' )) : ?> <div class="banner-block"> <?php dynamic_sidebar( 'banner' ); ?> </div> <?php endif; ?>
プラグインを追加・設定
function.phpやサイドバーなどにコードを追加するとともに、必要なプラグインもインストールします。
- ウィジェットで画像の設定ができるプラグイン「Image Widget」をインストール
- 編集者権限のユーザーにウィジェット(外観)の編集権限を与える
プラグイン「User Role Editor」など - 外観の「テーマ」や「カスタマイズ」など余分なメニューを消す
プラグイン「Admin Menu Editor」など - この記事の方法で余分なウィジェットを消す!
上記の方法でAさんの「外観」→「ウィジェット」のページには、プラグイン「Image Widget」のウィジェットのみが表示されます。
これなら管理画面に慣れないユーザーさんでもわかりやすいですね!
管理者には全部のウィジェットを表示する場合
この方法でウィジェットを消しちゃうと管理者が見ても消えてしまっている状態なので、以下のように管理者以外の時にウィジェットを消すようにするのもいいかと思います。
if (!current_user_can('administrator')) { //管理者でない場合 function remove_widgets() { unregister_widget('WP_Widget_Pages'); // 固定ページ unregister_widget('WP_Nav_Menu_Widget'); // カスタムメニュー } add_action('widgets_init', 'remove_widgets'); }